Weblogic clustered JMS and Apache proxy
I have a Weblogic 10.3.4 clustered JMS setup with 2 managed servers. Right now, each managed server has its own IP address. I have installed Apache and the Weblogic plugin as described here: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/plugins/apache.html
My entire Weblogic cluster is 4 managed servers, but I only want JMS to be on 2 of them. I have my Apache up and running with the following portion in the httpd.conf file.
<IfModule mod_weblogic.c>
WebLogicCluster ip1:7001,ip2:7001,ip3:7001,ip4:7001
ErrorPage http://ip1:7070/error.html
DynamicServerList ON
IdemPotent OFF
</IfModule>
...
...
<Location /HTTPClnt>
SetHandler weblogic-handler
WebLogicCluster ip1:7001,ip2:7001
</Location>
However, this does not work. I have a simple Java class that writes/reads from a JMS queue and it works when going to each JMS server's IP address, but when going through the proxy's IP, I get this.
Exception in thread "main" javax.naming.CommunicationException [Root exception is weblogic.socket.UnrecoverableConnectException: [Login failed for an unknown reason: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">]]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:40)
at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingExc开发者_如何学运维eption(WLInitialContextFactoryDelegate.java:788)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:366)
at weblogic.jndi.Environment.getContext(Environment.java:315)
at weblogic.jndi.Environment.getContext(Environment.java:285)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at jms.jmsinit(jms.java:112)
at jms.putMessageInQueue(jms.java:77)
at jms.main(jms.java:52)
Does anyone know what I must do to get t3 (and one day t3s) to work in this case?
You can't put a load balancer in front of JMS. You need to use a clustered T3 address like this:
t3://10.0.0.1:7001,10.0.0.2:7001,10.0.0.3:7001
精彩评论