dev@glassfish.java.net

Re: [REVIEW] thread-pool move

From: Lloyd Chambers <Lloyd.Chambers_at_Sun.COM>
Date: Tue, 28 Apr 2009 08:54:13 -0700

Thanks, I made the adjustment.

On Apr 28, 2009, at 8:27 AM, Justin Lee wrote:

> It went in this morning.
>
> Lloyd Chambers wrote:
>> Please let me know when this is committed as I'll need to adjust
>> the AMX interfaces that Anissa uses for the GUI.
>>
>> On Apr 28, 2009, at 3:24 AM, Justin Lee wrote:
>>
>>> That 2 is the min thread pool size. The old max size that was
>>> there was causing a performance problem apparently so jfa asked me
>>> to bump it. It now uses the default of 5.
>>>
>>> Jerome Dochez wrote:
>>>> looks good to me.
>>>> just one question, why does the max threadpool size goes from 20
>>>> to 2 ?
>>>>
>>>> jerome
>>>>
>>>> On Apr 27, 2009, at 5:33 PM, Justin Lee wrote:
>>>>
>>>>> Attached is the diff for moving thread-pool back under config/
>>>>> thread-pools.
>>>>> Index: ../packager/nucleus-base/domains/domain1/config/domain.xml
>>>>> =
>>>>> ==================================================================
>>>>> --- ../packager/nucleus-base/domains/domain1/config/
>>>>> domain.xml (revision 26651)
>>>>> +++ ../packager/nucleus-base/domains/domain1/config/
>>>>> domain.xml Mon Apr 27 20:04:01 EDT 2009
>>>>> @@ -168,7 +168,7 @@
>>>>> </protocol>
>>>>> </protocols>
>>>>> <network-listeners>
>>>>> - <thread-pool max-thread-pool-size="20" min-thread-
>>>>> pool-size="2" thread-pool-id="http-thread-pool" max-queue-
>>>>> size="4096"></thread-pool>
>>>>> + <thread-pool min-thread-pool-size="2" thread-pool-
>>>>> id="http-thread-pool" max-queue-size="4096"></thread-pool>
>>>>> <thread-pool thread-pool-id="thread-pool-1"></thread-pool>
>>>>> <network-listener port="8080" protocol="http-listener-1"
>>>>> transport="tcp" name="http-listener-1" thread-pool="http-thread-
>>>>> pool"></network-listener>
>>>>> <network-listener port="8181" enabled="false"
>>>>> protocol="http-listener-2" transport="tcp" name="http-
>>>>> listener-2" thread-pool="http-thread-pool"></network-listener>
>>>>> @@ -178,6 +178,10 @@
>>>>> <transport name="tcp"></transport>
>>>>> </transports>
>>>>> </network-config>
>>>>> + <thread-pools>
>>>>> + <thread-pool min-thread-pool-size="2" thread-pool-
>>>>> id="http-thread-pool" max-queue-size="4096"></thread-pool>
>>>>> + <thread-pool thread-pool-id="thread-pool-1"/>
>>>>> + </thread-pools>
>>>>> </config>
>>>>> </configs>
>>>>> <property name="administrative.domain.name" value="domain1"></
>>>>> property>
>>>>> Index: ../web/admin/src/main/java/org/glassfish/web/admin/cli/
>>>>> CreateHttpListener.java
>>>>> =
>>>>> ==================================================================
>>>>> --- ../web/admin/src/main/java/org/glassfish/web/admin/cli/
>>>>> CreateHttpListener.java (revision 26651)
>>>>> +++ ../web/admin/src/main/java/org/glassfish/web/admin/cli/
>>>>> CreateHttpListener.java Thu Apr 23 23:10:22 EDT 2009
>>>>> @@ -236,7 +236,7 @@
>>>>> }
>>>>>
>>>>> private void setThreadPool(NetworkConfig config,
>>>>> NetworkListener newListener) {
>>>>> - final List<ThreadPool> pools =
>>>>> config.getNetworkListeners().getThreadPool();
>>>>> + final List<ThreadPool> pools =
>>>>> config.getParent(Config.class).getThreadPools().getThreadPool();
>>>>> for (ThreadPool pool : pools) {
>>>>> if ("http-thread-pool".equals(pool.getThreadPoolId())) {
>>>>> newListener.setThreadPool(pool.getThreadPoolId());
>>>>> Index: ../admin/config-api/src/main/java/org/glassfish/config/
>>>>> support/GrizzlyConfigSchemaMigrator.java
>>>>> =
>>>>> ==================================================================
>>>>> --- ../admin/config-api/src/main/java/org/glassfish/config/
>>>>> support/GrizzlyConfigSchemaMigrator.java (revision 26651)
>>>>> +++ ../admin/config-api/src/main/java/org/glassfish/config/
>>>>> support/GrizzlyConfigSchemaMigrator.java Fri Apr 24 00:06:03
>>>>> EDT 2009
>>>>> @@ -50,7 +50,8 @@
>>>>>
>>>>> public void postConstruct() {
>>>>> try {
>>>>> - if (!
>>>>> domain
>>>>> .getConfigs
>>>>> ().getConfig
>>>>> ().get(0).getHttpService().getHttpListener().isEmpty()) {
>>>>> + final Config config =
>>>>> domain.getConfigs().getConfig().get(0);
>>>>> + if (!
>>>>> config.getHttpService().getHttpListener().isEmpty()) {
>>>>> ConfigSupport.apply(new SingleConfigCode<Domain>() {
>>>>> public Object run(Domain param) throws
>>>>> TransactionFailure {
>>>>> migrateSettings(param);
>>>>> @@ -58,35 +59,49 @@
>>>>> }
>>>>> }, domain);
>>>>> }
>>>>> - if
>>>>> (domain.getConfigs().getConfig().get(0).getThreadPools() !=
>>>>> null) {
>>>>> + if
>>>>> (config
>>>>> .getNetworkConfig().getNetworkListeners().getThreadPool() !=
>>>>> null) {
>>>>> + ThreadPools threadPools =
>>>>> config.getThreadPools();
>>>>> + if (threadPools == null) {
>>>>> + threadPools = createThreadPools();
>>>>> + }
>>>>> ConfigSupport.apply(new
>>>>> SingleConfigCode<ThreadPools>() {
>>>>> public Object run(ThreadPools param) throws
>>>>> TransactionFailure {
>>>>> migrateThreadPools(param);
>>>>> return null;
>>>>> }
>>>>> - },
>>>>> domain.getConfigs().getConfig().get(0).getThreadPools());
>>>>> + }, threadPools);
>>>>> }
>>>>> } catch (TransactionFailure tf) {
>>>>> Logger.getAnonymousLogger().log(Level.SEVERE, "Failure
>>>>> while upgrading application grizzly related items."
>>>>> + " Please redeploy", tf);
>>>>> throw new RuntimeException(tf);
>>>>> + } catch (PropertyVetoException e) {
>>>>> + Logger.getAnonymousLogger().log(Level.SEVERE,
>>>>> "Failure while upgrading application grizzly related items."
>>>>> + + " Please redeploy", e);
>>>>> + throw new RuntimeException(e);
>>>>> }
>>>>> }
>>>>>
>>>>> private void migrateThreadPools(final ThreadPools threadPools)
>>>>> throws TransactionFailure {
>>>>> + final Config config =
>>>>> threadPools.getParent(Config.class);
>>>>> + final NetworkListeners networkListeners =
>>>>> config.getNetworkConfig().getNetworkListeners();
>>>>> +
>>>>> threadPools
>>>>> .getThreadPool().addAll(networkListeners.getThreadPool());
>>>>> +
>>>>> ConfigSupport.apply(new
>>>>> SingleConfigCode<NetworkListeners>() {
>>>>> - @Override
>>>>> - public Object run(NetworkListeners param) {
>>>>> -
>>>>> param.getThreadPool().addAll(threadPools.getThreadPool());
>>>>> + public Object run(NetworkListeners param) throws
>>>>> PropertyVetoException {
>>>>> + param.getThreadPool().clear();
>>>>> return null;
>>>>> }
>>>>> - },
>>>>> threadPools
>>>>> .getParent
>>>>> (Config.class).getNetworkConfig().getNetworkListeners());
>>>>> - threadPools.getThreadPool().clear();
>>>>> - ConfigSupport.apply(new SingleConfigCode<Config>() {
>>>>> - public Object run(Config param) throws
>>>>> PropertyVetoException {
>>>>> - param.setThreadPools(null);
>>>>> - return null;
>>>>> + }, networkListeners);
>>>>> - }
>>>>> + }
>>>>> +
>>>>> + private ThreadPools createThreadPools() throws
>>>>> TransactionFailure, PropertyVetoException {
>>>>> + return (ThreadPools) ConfigSupport.apply(new
>>>>> SingleConfigCode<Config>() {
>>>>> + public Object run(Config param) throws
>>>>> PropertyVetoException, TransactionFailure {
>>>>> + final ThreadPools threadPools =
>>>>> param.createChild(ThreadPools.class);
>>>>> + param.setThreadPools(threadPools);
>>>>> + return threadPools;
>>>>> + }
>>>>> }, domain.getConfigs().getConfig().get(0));
>>>>> }
>>>>>
>>>>> Index: ../packager/nucleus-base/lib/templates/domain.xml
>>>>> =
>>>>> ==================================================================
>>>>> --- ../packager/nucleus-base/lib/templates/domain.xml
>>>>> (revision 26651)
>>>>> +++ ../packager/nucleus-base/lib/templates/domain.xml Mon Apr
>>>>> 27 20:04:01 EDT 2009
>>>>> @@ -170,8 +170,6 @@
>>>>> </protocol>
>>>>> </protocols>
>>>>> <network-listeners>
>>>>> - <thread-pool max-thread-pool-size="20" min-thread-
>>>>> pool-size="2" thread-pool-id="http-thread-pool" max-queue-
>>>>> size="4096"></thread-pool>
>>>>> - <thread-pool thread-pool-id="thread-pool-1"/>
>>>>> <network-listener port="%%%HTTP_PORT%%%" protocol="http-
>>>>> listener-1" transport="tcp" name="http-listener-1" thread-
>>>>> pool="http-thread-pool"></network-listener>
>>>>> <network-listener port="%%%HTTP_SSL_PORT%%%"
>>>>> enabled="false" protocol="http-listener-2" transport="tcp"
>>>>> name="http-listener-2" thread-pool="http-thread-pool"></network-
>>>>> listener>
>>>>> <network-listener port="%%%ADMIN_PORT%%%"
>>>>> protocol="admin-listener" transport="tcp" name="admin-listener"
>>>>> thread-pool="http-thread-pool"></network-listener>
>>>>> @@ -180,6 +178,10 @@
>>>>> <transport name="tcp"></transport>
>>>>> </transports>
>>>>> </network-config>
>>>>> + <thread-pools>
>>>>> + <thread-pool min-thread-pool-size="2" thread-pool-
>>>>> id="http-thread-pool" max-queue-size="4096"></thread-pool>
>>>>> + <thread-pool thread-pool-id="thread-pool-1"/>
>>>>> + </thread-pools>
>>>>> </config>
>>>>> </configs>
>>>>> <property name="administrative.domain.name" value="%%%DOMAIN_NAME
>>>>> %%%"/>
>>>>> Index: ../admin/config-api/src/main/java/com/sun/enterprise/
>>>>> config/serverbeans/ThreadPools.java
>>>>> =
>>>>> ==================================================================
>>>>> --- ../admin/config-api/src/main/java/com/sun/enterprise/config/
>>>>> serverbeans/ThreadPools.java (revision 26651)
>>>>> +++ ../admin/config-api/src/main/java/com/sun/enterprise/config/
>>>>> serverbeans/ThreadPools.java Thu Apr 23 23:08:04 EDT 2009
>>>>> @@ -50,7 +50,6 @@
>>>>> // general solution needed; this is intermediate solution
>>>>> @AMXCreatorInfo(creatables = {ThreadPool.class})
>>>>> @Configured
>>>>> -_at_Deprecated
>>>>> public interface ThreadPools extends ConfigBeanProxy, Injectable {
>>>>> /**
>>>>> * Gets the value of the threadPool property. <p/> <p/> This
>>>>> accessor method returns a reference to the live list,
>>>>> Index: ../orb/orb-iiop/src/main/java/org/glassfish/enterprise/
>>>>> iiop/impl/IIOPUtils.java
>>>>> =
>>>>> ==================================================================
>>>>> --- ../orb/orb-iiop/src/main/java/org/glassfish/enterprise/iiop/
>>>>> impl/IIOPUtils.java (revision 26651)
>>>>> +++ ../orb/orb-iiop/src/main/java/org/glassfish/enterprise/iiop/
>>>>> impl/IIOPUtils.java Mon Apr 27 18:16:11 EDT 2009
>>>>> @@ -10,6 +10,7 @@
>>>>> import com.sun.enterprise.config.serverbeans.IiopListener;
>>>>> import com.sun.enterprise.config.serverbeans.IiopService;
>>>>> import com.sun.enterprise.config.serverbeans.ServerRef;
>>>>> +import com.sun.enterprise.config.serverbeans.ThreadPools;
>>>>> import com.sun.grizzly.config.dom.NetworkListener;
>>>>> import com.sun.grizzly.config.dom.NetworkListeners;
>>>>> import com.sun.grizzly.config.dom.ThreadPool;
>>>>> @@ -64,7 +65,7 @@
>>>>> if( processEnv.getProcessType() == ProcessType.Server) {
>>>>>
>>>>> iiopService = habitat.getComponent(IiopService.class);
>>>>> - final List<ThreadPool> threadPool =
>>>>> habitat.getComponent(NetworkListeners.class).getThreadPool();
>>>>> + final Collection<ThreadPool> threadPool =
>>>>> habitat.getAllByType(ThreadPool.class);
>>>>> final Collection<NetworkListener> listeners =
>>>>> habitat.getAllByType(NetworkListener.class);
>>>>> final Set<String> names = new TreeSet<String>();
>>>>> threadPools = new ArrayList<ThreadPool>();
>>>>> Index: ../pom.xml
>>>>> =
>>>>> ==================================================================
>>>>> --- ../pom.xml (revision 26651)
>>>>> +++ ../pom.xml Mon Apr 27 17:23:35 EDT 2009
>>>>> @@ -110,7 +110,7 @@
>>>>> <deployment-api.version>1.2-rev-1</deployment-api.version>
>>>>> <jaxrpc-api.version>1.1</jaxrpc-api.version>
>>>>> <grizzly.version>1.9.14</grizzly.version>
>>>>> - <grizzly-config.version>1.0.1</grizzly-config.version>
>>>>> + <grizzly-config.version>1.0.2</grizzly-config.version>
>>>>> <jaxb-api.version>2.1</jaxb-api.version>
>>>>> <jaxws-api.version>2.1</jaxws-api.version>
>>>>> <jsr250-api.version>1.0</jsr250-api.version>
>>>>> Index: ../admin/config-api/src/main/java/com/sun/enterprise/
>>>>> config/serverbeans/Config.java
>>>>> =
>>>>> ==================================================================
>>>>> --- ../admin/config-api/src/main/java/com/sun/enterprise/config/
>>>>> serverbeans/Config.java (revision 26651)
>>>>> +++ ../admin/config-api/src/main/java/com/sun/enterprise/config/
>>>>> serverbeans/Config.java Thu Apr 23 23:10:22 EDT 2009
>>>>> @@ -403,7 +403,6 @@
>>>>> * {_at_link ThreadPools }
>>>>> */
>>>>> @Element(required=true)
>>>>> - @Deprecated
>>>>> ThreadPools getThreadPools();
>>>>>
>>>>> /**
>>>>> @@ -412,7 +411,6 @@
>>>>> * @param value allowed object is
>>>>> * {_at_link ThreadPools }
>>>>> */
>>>>> - @Deprecated
>>>>> void setThreadPools(ThreadPools value) throws
>>>>> PropertyVetoException;
>>>>>
>>>>> /**
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
>>> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>>>
>>
>> Lloyd Chambers
>> lloyd.chambers_at_sun.com
>> GlassFish Team
>>
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>

Lloyd Chambers
lloyd.chambers_at_sun.com
GlassFish Team