开发者

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜