Maybe i have found a bug in the cluster environment if enterprise application 
use HA-JNDI.

I'm using JBoss AS 4.0.1sp1 with jdk 1.4.2_07 on Windows XP using "all" 
configuration.

I have tre machine:

"HostA" : Load balance base on Apache 2.0 with mod_jk 1.2.x with sticky session
"ClusterB" : Jboss AS 4.0.1 sp1 with my ear with war and ejb modules
"ClusterC" : Jboss AS 4.0.1 sp1 with my ear the same than in ClusterB

In this situation ALL WORKS fine.

If a cliente request to HostA a resouce, this is forward to ClusterB or 
ClusterC according load balance rules.

Http sessions are replicated too and credential is propagate across cluster.

So the cluster that response to the client request shutdown, a new request from 
the client (in the same http session) is redirect the the alive cluster and all 
http session data are visible again.

the web.xml have the  attribute.
ejb are not CLUSTERED because are local entity ejb and stateless session.

And this is the correct behavior.

Now my ear application need to use the HA-JNDI because i need to bind to the 
JNDI a object and this must be see across cluster.

I know that to use HA-JNDI there are different ways:

Solution 1:

  | try
  | {
  | Properties properties = new Properties();
  | properties.setProperty(javax.naming.Context.PROVIDER_URL, "localhost:1100");
  | object = new InitialContext(properties).lookup("myinformation");
  | }
  | catch (Exception vErr)
  | {}
  | 

is the same setting as property jnp.partitionName the partition name (eg. 
"DefaultPartition")

Solution 2:
put in the classpath a jndi.properties with the provider url or partition name.
In this case i can use object = new InitialContext().lookup("myinformation");




I choose to use the second way because no change in my code is needed and i 
cannot "hard code" the value.

So i have in my ear a indi.properties with:

  | java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
  | java.naming.provider.url=jnp://localhost:1100
  | java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
  | #jnp.partitionName=DefaultPartition
  | 

This works fine too. HA-JNDI works fine. but a big problem occurs when a 
cluster shutdown: all lookups fail with a NameNotBoundException!
Seem that all the deployed/binded ejb are undeployed (maybe only for the 
HA-JNDI because if i go on jmx-console i can see the deployed ejb yet).
And another problem http session data are lost (or maybe never replicated to 
clusters). 

Seem that when a cluster shutdown, the jboss container undeploy all and remove 
all http session using HA-JNDI, so undeploy over all cluster and remove http 
session data from all cluster.

Any idea about it? or it's really a bug? or i haven't configured well how use 
HA-JNDI?

I need to use HA-JNDI without change my code...


Thank You

Roberto

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3874085#3874085

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3874085


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to