[
https://issues.jboss.org/browse/JBNAME-51?page=com.atlassian.jira.plugin....
]
Dennis Reed updated JBNAME-51:
------------------------------
Description:
org.jnp.interfaces.NamingContext.checkRef always loops through the provider list in
order,
trying to connect to the first before checking for a cached connection to a later
provider.
This affects performance because it can cause a delay on every context created, waiting
for a timeout on a node that is down.
For instance, the following takes a very long time when node1 is down.
...
env.put ( Context.PROVIDER_URL, "node1:1100,node2:1100" );
for ( int i = 0; i < 1000; ++ i ) {
InitialContext ctx = new InitialContext ( env );
...
}
If checkRef looked for a cached connection to any of the listed providers before trying to
connect to an uncached one,
there would only be a timeout delay on the very first connection attempt.
was:
org.jnp.interfaces.NamingContext.checkRef always loops through the provider list in
order,
trying to connect to the first before checking for a cached connection to a later
provider.
This affects performance because it can cause a delay on every context created, waiting
for a timeout on a node that is down.
For instance, the following takes a very long time when node1 is down.
...
env.put ( Context.PROVIDER_URL, "node1:1100,node2:1100" );
for ( int i = 0; i < 1000; ++ i ) {
InitialContext ctx = new InitialContext ( env );
...
}
If checkRef looked for a cached connection to any of the listed providers before trying to
connect to an uncached one,
there would only be a timeout delay on the very first connection attempt.
Note: This would change the behavior of the client when node1 comes back up in the middle,
so would not be eligible for an EAP patch release.
Delay in connecting when first of multiple providers is down can
cause performance issue
----------------------------------------------------------------------------------------
Key: JBNAME-51
URL:
https://issues.jboss.org/browse/JBNAME-51
Project: JBoss Naming
Issue Type: Bug
Components: jnpserver
Affects Versions: 5.0.3.GA
Reporter: Dennis Reed
Attachments: JBNAME-51.diff
org.jnp.interfaces.NamingContext.checkRef always loops through the provider list in
order,
trying to connect to the first before checking for a cached connection to a later
provider.
This affects performance because it can cause a delay on every context created, waiting
for a timeout on a node that is down.
For instance, the following takes a very long time when node1 is down.
...
env.put ( Context.PROVIDER_URL, "node1:1100,node2:1100" );
for ( int i = 0; i < 1000; ++ i ) {
InitialContext ctx = new InitialContext ( env );
...
}
If checkRef looked for a cached connection to any of the listed providers before trying
to connect to an uncached one,
there would only be a timeout delay on the very first connection attempt.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira