#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

# This file contains the configuration parameters used by the Non-blocking HTTP transport.

#http.socket.timeout=60000
#http.socket.buffer-size=8192
#http.socket.rcv-buffer-size=8192
#http.socket.snd-buffer-size=8192
#http.tcp.nodelay=true
#http.connection.stalecheck=0

# Uncomment the following property for an AIX based deployment
#http.nio.interest-ops-queueing=true

# Number of I/O dispatcher threads that should be used by each IOReactor
#io_threads_per_reactor=2

# HTTP Listener thread pool parameters
#snd_t_core=20
#snd_t_max=100
#snd_alive_sec=5
#snd_qlen=-1

# HTTP Sender thread pool parameters
#lst_t_core=20
#lst_t_max=100
#lst_alive_sec=5
#lst_qlen=-1

#http.headers.preserve=Serer,User-Agent,Date
