I checked what you wanted me to and confirm that the TreeCache is up and
running.
Here is what I get on the stdout (Sorry for the huge log)
===============================================================================
.
JBoss Bootstrap Environment
.
JBOSS_HOME: D:\java\jboss-4.0.1sp1\bin\\..
.
JAVA: c:\java\jdk1.5.0\bin\java
.
JAVA_OPTS: -Dprogram.name=run.bat -Dcom.sun.management.jmxremote -Xms32m -Xmx128m
.
CLASSPATH: c:\java\jdk1.5.0\lib\tools.jar;D:\java\jboss-4.0.1sp1\bin\\run.jar
.
CMD PARAMS: -c all1 -b node1
.
===============================================================================
.
12:11:27,171 INFO [Server] Starting JBoss (MX MicroKernel)...
12:11:27,233 INFO [Server] Release ID: JBoss [Zion] 4.0.1sp1 (build: CVSTag=JBoss_4_0_1_SP1 date=200502160314)
12:11:27,296 INFO [Server] Home Dir: D:\java\jboss-4.0.1sp1
12:11:27,374 INFO [Server] Home URL: file:/D:/java/jboss-4.0.1sp1/
12:11:27,389 INFO [Server] Library URL: file:/D:/java/jboss-4.0.1sp1/lib/
12:11:27,405 INFO [Server] Patch URL: null
12:11:27,421 INFO [Server] Server Name: all1
12:11:27,436 INFO [Server] Server Home Dir: D:\java\jboss-4.0.1sp1\server\all1
12:11:27,436 INFO [Server] Server Home URL: file:/D:/java/jboss-4.0.1sp1/server/all1/
12:11:27,468 INFO [Server] Server Data Dir: D:\java\jboss-4.0.1sp1\server\all1\data
12:11:27,483 INFO [Server] Server Temp Dir: D:\java\jboss-4.0.1sp1\server\all1\tmp
12:11:27,499 INFO [Server] Server Config URL: file:/D:/java/jboss-4.0.1sp1/server/all1/conf/
12:11:27,499 INFO [Server] Server Library URL: file:/D:/java/jboss-4.0.1sp1/server/all1/lib/
12:11:27,514 INFO [Server] Root Deployment Filename: jboss-service.xml
12:11:27,530 INFO [Server] Starting General Purpose Architecture (GPA)...
12:11:28,155 INFO [ServerInfo] Java version: 1.5.0_04,Sun Microsystems Inc.
12:11:28,171 INFO [ServerInfo] Java VM: Java HotSpot(TM) Client VM 1.5.0_04-b05,Sun Microsystems Inc.
12:11:28,186 INFO [ServerInfo] OS-System: Windows XP 5.1,x86
12:11:28,936 INFO [Server] Core system initialized
12:11:33,030 INFO [Log4jService$URLWatchTimerTask] Configuring from URL: resource:log4j.xml
12:11:33,202 INFO [WebService] Using RMI server codebase: http://node1:8083/
12:11:33,499 INFO [NamingService] Started jndi bootstrap jnpPort=1099,rmiPort=1098, backlog=50, bindAddress=node1/10.0.0.1, Client SocketFactory=null, Server SocketFactory=org.jboss.net.sockets.DefaultSocketFactory@ad093076
12:11:43,529 INFO [DefaultPartition] Initializing
12:11:43,701 INFO [STDOUT]
-------------------------------------------------------
GMS: address is node1:2403 (additional data: 13 bytes)
-------------------------------------------------------
12:11:45,764 INFO [DefaultPartition] Number of cluster members: 1
12:11:45,779 INFO [DefaultPartition] Other members: 0
12:11:45,795 INFO [DefaultPartition] New cluster view for partition DefaultPartition (id: 0, delta: 0) : [10.0.0.1:1099]
12:11:45,811 INFO [DefaultPartition] Fetching state (will wait for 30000 milliseconds):
12:11:45,842 INFO [DefaultPartition] I am (10.0.0.1:1099) received membershipChanged event:
12:11:45,858 INFO [DefaultPartition] Dead members: 0 ([])
12:11:45,873 INFO [DefaultPartition] New Members : 0 ([])
12:11:45,889 INFO [DefaultPartition] All Members : 1 ([10.0.0.1:1099])
12:11:46,154 INFO [HANamingService] Listening on node1/10.0.0.1:1100
12:11:46,170 INFO [DetachedHANamingService$AutomaticDiscovery] Listening on /10.0.0.1:1102, group=230.0.0.4, HA-JNDI ad
dress=10.0.0.1:1100
12:11:49,873 INFO [MailService] Mail Service bound to java:/Mail
12:11:50,514 INFO [BlockingServer] Remoting 'async' protocol clients will connect to: InvokerLocator [async://10.160.32.251:8085/?compression=-1&tcp.nodelay=true]
12:11:51,029 INFO [TreeCache] setting cluster properties from xml to: UDP(ip_mcast=true;ip_ttl=64;loopback=false;mcast_addr=230.1.2.3;mcast_port=45577;mcast_recv_buf_size=80000;mcast_send_buf_size=150000;ucast_recv_buf_size=80000;ucast_send_buf_size=150000):PING(down_thread=false;num_initial_members=3;timeout=2000;up_thread=false):MERGE2(max_interval=20000;min_interval=10000):FD_SOCK:VERIFY_SUSPECT(down_thread=false;timeout=1500;up_thread=false):pbcast.NAKACK(down_thread=false;gc_lag=50;max_xmit_size=8192;retransmit_timeout=600,1200,2400,4800;up_thread=false):UNICAST(down_thread=false;min_threshold=10;timeout=600,1200,2400;window_size=100):pbcast.STABLE(desired_avg_gossip=20000;down_thread=false;up_thread=false):FRAG(down_thread=false;frag_size=8192;up_thread=false):pbcast.GMS(join_retry_timeout=2000;join_timeout=5000;print_local_addr=true;shun=true):pbcast.STATE_TRANSFER(down_thread=true;up_thread=true)
12:11:51,170 INFO [TreeCache] interceptor chain is:
class org.jboss.cache.interceptors.CallInterceptor
class org.jboss.cache.interceptors.LockInterceptor
class org.jboss.cache.interceptors.CreateIfNotExistsInterceptor
class org.jboss.cache.interceptors.ReplicationInterceptor
12:11:51,217 INFO [TreeCache] cache mode is REPL_SYNC
12:11:51,310 INFO [STDOUT]
-------------------------------------------------------
GMS: address is node1:2408
-------------------------------------------------------
12:11:53,467 INFO [TreeCache] viewAccepted(): new members: [node1:2408]
12:11:53,576 INFO [TreeCache] state could not be retrieved (must be first member in group)
12:11:53,576 INFO [TreeCache] new cache is null (maybe first member in cluster)
12:11:56,310 INFO [Embedded] Catalina naming disabled
12:11:59,779 INFO [Http11Protocol] Initializing Coyote HTTP/1.1 on http-node1%2F10.0.0.1-8080
12:11:59,888 INFO [Catalina] Initialization processed in 2390 ms
12:11:59,904 INFO [StandardService] Starting service jboss.web
12:11:59,951 INFO [StandardEngine] Starting Servlet Engine: Apache Tomcat/5.0.28
12:12:00,029 INFO [StandardHost] XML validation disabled
12:12:00,044 INFO [TreeCacheSSOClusterManager] Cannot find TreeCache using jboss.cache:service=TomcatClusteringCache --
treeCacheName must be set to point to a running TreeCache before ClusteredSingleSignOn can handle requests
12:12:00,076 INFO [Engine] SingleSignOn[localhost]: Started
12:12:00,201 INFO [Catalina] Server startup in 297 ms
12:12:00,216 INFO [Tomcat5] Setting the cache name to jboss.cache:service=TomcatClusteringCache on jboss.web:type=Valve
,name=ClusteredSingleSignOn,host=localhost
12:12:00,701 INFO [TomcatDeployer] deploy, ctxPath=/invoker, warUrl=file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/httpha-invoker.sar/invoker.war/
12:12:03,091 INFO [TomcatDeployer] deploy, ctxPath=/ws4ee, warUrl=file:/D:/java/jboss-4.0.1sp1/server/all1/tmp/deploy/tmp36577jboss-ws4ee-exp.war/
12:12:03,982 INFO [TomcatDeployer] deploy, ctxPath=/, warUrl=file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/jbossweb-tomcat50.sar/ROOT.war/
12:12:04,435 INFO [TomcatDeployer] deploy, ctxPath=/c1, warUrl=file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/jbossweb-tomcat50.sar/c1.war/
12:12:04,732 INFO [JBossCacheManager] init(): replicationGranularity_ is 0 and invaldateSessionPolicy is 2
12:12:04,779 INFO [JBossCacheManager] Starting JBossManager
12:12:04,966 INFO [TomcatDeployer] deploy, ctxPath=/c2, warUrl=file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/jbossweb
-tomcat50.sar/c2.war/
12:12:05,216 INFO [JBossCacheManager] init(): replicationGranularity_ is 0 and invaldateSessionPolicy is 2
12:12:05,294 INFO [JBossCacheManager] Starting JBossManager
12:12:05,419 INFO [TomcatDeployer] deploy, ctxPath=/jbossmq-httpil, warUrl=file:/D:/java/jboss-4.0.1sp1/server/all1/deploy-hasingleton/jms/jbossmq-httpil.sar/jbossmq-httpil.war/
12:12:06,419 INFO [RARDeployment] Required license terms exist view the META-INF/ra.xml: file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/jboss-local-jdbc.rar
12:12:06,716 INFO [RARDeployment] Required license terms exist view the META-INF/ra.xml: file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/jboss-xa-jdbc.rar
12:12:07,013 INFO [RARDeployment] Required license terms exist view the META-INF/ra.xml: file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/jms/jms-ra.rar
12:12:07,263 INFO [RARDeployment] Required license terms exist view the META-INF/ra.xml: file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/mail-ra.rar
12:12:09,810 INFO [WrapperDataSourceService] Bound connection factory for resource adapter for ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS to JNDI name 'java:DefaultDS'
12:12:09,888 WARN [ConfiguredIdentityLoginModule] Creating LoginModule with no configured password!
12:12:10,435 INFO [A] Bound to JNDI name: queue/A
12:12:10,450 INFO [B] Bound to JNDI name: queue/B
12:12:10,466 INFO [C] Bound to JNDI name: queue/C
12:12:10,482 INFO [D] Bound to JNDI name: queue/D
12:12:10,497 INFO [ex] Bound to JNDI name: queue/ex
12:12:10,560 INFO [testTopic] Bound to JNDI name: topic/testTopic
12:12:10,575 INFO [securedTopic] Bound to JNDI name: topic/securedTopic
12:12:10,591 INFO [testDurableTopic] Bound to JNDI name: topic/testDurableTopic
12:12:10,607 INFO [testQueue] Bound to JNDI name: queue/testQueue
12:12:10,716 INFO [OILServerILService] JBossMQ OIL service available at : node1/10.0.0.1:8090
12:12:10,825 INFO [UILServerILService] JBossMQ UIL service available at : node1/10.0.0.1:8093
12:12:10,903 INFO [DLQ] Bound to JNDI name: queue/DLQ
12:12:11,325 INFO [ConnectionFactoryBindingService] Bound connection factory for resource adapter for ConnectionManager
'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA to JNDI name 'java:JmsXA'
12:12:11,622 INFO [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/jmx-console.war/
12:12:12,700 INFO [TomcatDeployer] deploy, ctxPath=/web-console, warUrl=file:/D:/java/jboss-4.0.1sp1/server/all1/deploy/management/web-console.war/
12:12:17,028 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-node1%2F10.0.0.1-8080
12:12:17,966 INFO [ChannelSocket] JK2: ajp13 listening on node1/10.0.0.1:8009
12:12:17,981 INFO [JkMain] Jk running ID=0 time=0/78 config=null
12:12:18,028 INFO [Server] JBoss (MX MicroKernel) [4.0.1sp1 (build: CVSTag=JBoss_4_0_1_SP1 date=200502160314)] Started
in 47s:780ms
12:12:26,278 INFO [DefaultPartition] New cluster view for partition DefaultPartition (id: 1, delta: 1) : [10.0.0.1:1099, 10.0.0.2:1099]
12:12:26,293 INFO [DefaultPartition] I am (10.0.0.1:1099) received membershipChanged event:
12:12:26,309 INFO [DefaultPartition] Dead members: 0 ([])
12:12:26,325 INFO [DefaultPartition] New Members : 1 ([10.0.0.2:1099])
12:12:26,325 INFO [DefaultPartition] All Members : 2 ([10.0.0.1:1099, 10.0.0.2:1099])
12:12:32,293 INFO [TreeCache] locking the tree to obtain transient state
12:12:32,309 INFO [TreeCache] returning the transient state (217 bytes)
12:12:32,340 INFO [TreeCache] viewAccepted(): new members: [node1:2408, node2:2419]
12:13:06,104 INFO [Engine] SingleSignOn[localhost]: Process request for '/c1/tsr.jsp'
12:13:06,120 INFO [Engine] SingleSignOn[localhost]: Checking for SSO cookie
12:13:06,136 INFO [Engine] SingleSignOn[localhost]: SSO cookie is not present
12:13:11,339 INFO [Engine] SingleSignOn[localhost]: Process request for '/c1/tsr.jsp'
12:13:11,354 INFO [Engine] SingleSignOn[localhost]: Checking for SSO cookie
12:13:11,370 INFO [Engine] SingleSignOn[localhost]: SSO cookie is not present
12:13:11,526 INFO [Engine] SingleSignOn[localhost]: Registering sso id '1339792CA19F19753196F3794A22CC84' for user 'use
r1' with auth type 'BASIC'
12:13:11,542 ERROR [TreeCacheSSOClusterManager] Cannot find TreeCache using jboss.cache:service=TomcatClusteringCache --
TreeCache must be started before ClusteredSingleSignOn can handle requests
12:13:11,635 INFO [STDOUT] Can't find resource org.jboss.web.tomcat.session.LocalStrings org.jboss.web.tomcat.tc5.WebCt
xLoader$ENCLoader@2c5444
12:13:11,667 INFO [STDOUT] [Ljava.net.URL;@157402b
12:13:11,870 INFO [Engine] SingleSignOn[localhost]: Associate sso id 1339792CA19F19753196F3794A22CC84 with session SessionBasedClusteredSession[qM-ENRL0Lg21qb4ka3n4VA**.node1]
12:13:11,885 WARN [TreeCacheSSOClusterManager] Cannot find TreeCache using jboss.cache:service=TomcatClusteringCache --
TreeCache must be started before ClusteredSingleSignOn can handle requests
12:13:34,900 INFO [Engine] SingleSignOn[localhost]: Process request for '/c2/tsr.jsp'
12:13:34,916 INFO [Engine] SingleSignOn[localhost]: Checking for SSO cookie
12:13:34,931 INFO [Engine] SingleSignOn[localhost]: Checking for cached principal for 1339792CA19F19753196F3794A22CC84
12:13:34,947 INFO [Engine] SingleSignOn[localhost]: Found cached principal 'user1' with auth type 'BASIC'
12:13:35,041 INFO [Engine] SingleSignOn[localhost]: Associate sso id 1339792CA19F19753196F3794A22CC84 with session SessionBasedClusteredSession[DwQHoSanZlEVYjCsRjQp4w**.node1]
12:13:35,072 WARN [TreeCacheSSOClusterManager] Cannot find TreeCache using jboss.cache:service=TomcatClusteringCache --
TreeCache must be started before ClusteredSingleSignOn can handle requests
There are two simple web applications requiring authentication bound to contexts c1 and c1. They consist of the single jsp displaying current session id. In the log above one can observe the result of accessing /c1/tsr.jsp and /c2/tsr.jsp. The first request requires auhentication, the second doesn't, as the JSESSIONIDSSO cokie is set on the first response and sent along with the second request by the browser.
There *is* an MBean jboss.cache:service=TomcatClusteringCache which when invoking printDetails() on it returns standard session entries only (no SSO entries)
/JSESSION
/c2
/DwQHoSanZlEVYjCsRjQp4w**
VERSION: 1
DwQHoSanZlEVYjCsRjQp4w**: org.jboss.invocation.MarshalledValue@adccaac3
/c1
/qM-ENRL0Lg21qb4ka3n4VA**
VERSION: 1
qM-ENRL0Lg21qb4ka3n4VA**: org.jboss.invocation.MarshalledValue@ddfb3d0a
As a mater of fact I took several further steps to get the config running, e.g. I had to set the jvmRoute="node1|node2" and set the useJK attribute to "true". I also anabled java:/jaas/other security domain and made the c1 and c2 use this domain. Later on I copied the whole all config to all2 (changing the jvmRoute to node2 where appropriate), renamed all to all1 and launched them both.
run.bat -c all1 -b node1
run.bat -c all2 -b node2
, where node1 and node2 are resolved to 10.0.0.1 and 10.0.0.2 respectively.
As a result I observed replication of the JSESSION entries, SSO works across the applications on the same node but do not get replicated across the members of the cluster.
Btw, there is this nasty little bug in jgroups/jbosscache in 4.0.1sp1 that causes the following exception on each replicaction event (on the stdout of the node the sessions get replicated to). AFAIK it has been reported in JIRA and can be worked around by substituting jgroups.jar and jboss-cache.jar with more recent versions.
12:13:11,979 ERROR [RpcDispatcher] failed invoking method
java.lang.UnsupportedOperationException: commit() should not be called on TreeCache directly
at org.jboss.cache.TreeCache.commit(TreeCache.java:2783)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jgroups.blocks.MethodCall.invoke(MethodCall.java:236)
at org.jboss.cache.interceptors.CallInterceptor.invoke(CallInterceptor.java:37)
at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:40)
at org.jboss.cache.interceptors.LockInterceptor.invoke(LockInterceptor.java:126)
at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:40)
at org.jboss.cache.interceptors.CreateIfNotExistsInterceptor.invoke(CreateIfNotExistsInterceptor.java:47)
at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:40)
at org.jboss.cache.interceptors.ReplicationInterceptor.replicate(ReplicationInterceptor.java:210)
at org.jboss.cache.TreeCache._replicate(TreeCache.java:2733)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jgroups.blocks.MethodCall.invoke(MethodCall.java:236)
at org.jgroups.blocks.RpcDispatcher.handle(RpcDispatcher.java:220)
at org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:615)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:512)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:326)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.handleUp(MessageDispatcher.java:722)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.access$300(MessageDispatcher.java:554)
at org.jgroups.blocks.MessageDispatcher$1.run(MessageDispatcher.java:691)
at java.lang.Thread.run(Thread.java:595)
Whew, that was long, I hope this will be helpfull.
Brian, should you need more details, just let me know.
/dd