# 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 is used for unit testing the thread pool manager.
# Normally these settings are loaded from the cache.ccf file.

# #############################################################
# ################# THREAD POOL CONFIGURATION ###################
# Default thread pool config
thread_pool.default.boundarySize=2000
thread_pool.default.maximumPoolSize=150
thread_pool.default.minimumPoolSize=6
thread_pool.default.keepAliveTime=350000
# RUN ABORT WAIT BLOCK DISCARDOLDEST
thread_pool.default.whenBlockedPolicy=RUN
thread_pool.default.startUpSize=6

# Remote cache client thread pool config
thread_pool.test1.boundarySize=75
thread_pool.test1.maximumPoolSize=150
thread_pool.test1.minimumPoolSize=4
thread_pool.test1.keepAliveTime=350001
thread_pool.test1.whenBlockedPolicy=RUN
thread_pool.test1.startUpSize=4

# max size test thread pool config
thread_pool.maxtest.boundarySize=72
thread_pool.maxtest.maximumPoolSize=142
thread_pool.maxtest.minimumPoolSize=5
thread_pool.maxtest.keepAliveTime=350002
thread_pool.maxtest.whenBlockedPolicy=RUN
thread_pool.maxtest.startUpSize=5

# abort test thread pool config
thread_pool.aborttest.boundarySize=1
thread_pool.aborttest.maximumPoolSize=11
thread_pool.aborttest.minimumPoolSize=1
thread_pool.aborttest.keepAliveTime=1
thread_pool.aborttest.whenBlockedPolicy=ABORT
thread_pool.aborttest.startUpSize=1

# with boundary test thread pool config
thread_pool.withbound.useBoundary=true
thread_pool.withbound.boundarySize=1000
thread_pool.withbound.maximumPoolSize=11
thread_pool.withbound.minimumPoolSize=1
thread_pool.withbound.keepAliveTime=1
thread_pool.withbound.whenBlockedPolicy=ABORT
thread_pool.withbound.startUpSize=1


# no boundary test thread pool config
thread_pool.nobound.useBoundary=false
thread_pool.nobound.boundarySize=1000
thread_pool.nobound.maximumPoolSize=11
thread_pool.nobound.minimumPoolSize=1
thread_pool.nobound.keepAliveTime=1
thread_pool.nobound.whenBlockedPolicy=ABORT
thread_pool.nobound.startUpSize=1
