-
15. Re: Remote JMS server
rcjboss Sep 26, 2006 5:08 PM (in response to mskonda)Hi,
(Please read patiently complete message as it belongs to this post.)
Since JBoss Msg 1.2 is not available till Jan07, I am planning the following to achieve failover(manual):
1. I will deploy JBoss Messaging as an independent server hosting all my Queues.
2. The persistance for msg will be Oracle.
3. I will have a standby replica instance of the above JBoss on a different machine, that will have the same Queues and will connect to same oracle. This will be my manual failover server.
And I will have a cluster of 2 JBoss 4.0.4 which will host MDBs in a cluster that will be listening to the (remote) Queues mentioned above.
First of all, Please confirm that this is a workable solution.
Second, As I understand from the documentation: http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessagingUser_Deploying_a_scoped_MDB_container
Can I not achieve the same by: installing JBoss Messaging on the servers that run the MDBs and just not configure the Queues on them (will this be a complete and easier way to achieve the scoped libraries?).
Then I follow the documentation: http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessagingUser_Enabling_access_to_remote_JBoss_Messaging_instance to deploy my MDBs.
Please advice.
Thanks -
16. Re: Remote JMS server
mskonda Sep 27, 2006 5:27 AM (in response to mskonda)"rcjboss" wrote:
1. I will deploy JBoss Messaging as an independent server hosting all my Queues.
2. The persistance for msg will be Oracle.
3. I will have a standby replica instance of the above JBoss on a different machine, that will have the same Queues and will connect to same oracle. This will be my manual failover server.
And I will have a cluster of 2 JBoss 4.0.4 which will host MDBs in a cluster that will be listening to the (remote) Queues mentioned above.
First of all, Please confirm that this is a workable solution.
I don't see why not, assuming you have configured the MDBs talking to the remote JMS Server as explained the accessing remote jms doc.
Can I not achieve the same by: installing JBoss Messaging on the servers that run the MDBs and just not configure the Queues on them (will this be a complete and easier way to achieve the scoped libraries?).
Yes. What you are doign is - you have local jms server (along with the MDB Container) having components accessing remote JMS Server which is quite alright if you put up with co-existing JMS server.
As far as I know, you would do scoping if you wish to have no co-existing JMS Server within you EJBContainer (that is, application server).
/Madhu -
17. Re: Remote JMS server
ovidiu.feodorov Oct 2, 2006 10:32 PM (in response to mskonda)rcjboss wrote:
Since JBoss Msg 1.2 is not available till Jan07, I am planning the following to achieve failover(manual):
1. I will deploy JBoss Messaging as an independent server hosting all my Queues.
2. The persistance for msg will be Oracle.
3. I will have a standby replica instance of the above JBoss on a different machine, that will have the same Queues and will connect to same oracle. This will be my manual failover server.
This is pretty much how JBossMQ achieves its HA capabilities. There is a service called HA Singleton that ships with JBoss that can help you with what you intend to do, until the real HA is out. You can take a look at how JBossMQ does it, it's not very complicated.rcjboss wrote:
Can I not achieve the same by: installing JBoss Messaging on the servers that run the MDBs and just not configure the Queues on them (will this be a complete and easier way to achieve the scoped libraries?).
Most likely, yes. You'll achieve scoping by doing that, and then you can deploy your MDBs within that scope without any additional trouble. After installation, you can actually turn off all Messaging services, to reduce the overhead and memory footprint.
An alternative is to deploy a simple scoped bootstrap service with all necessary dependencies. This is actually the "method 3" of http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessagingUser_Deploying_a_scoped_MDB_container. I just didn't have time to expand it, but if you try it and you're successful at making it work, you could expand the document, it's a wiki ... -
18. Re: Remote JMS server
mskonda Oct 10, 2006 12:15 PM (in response to mskonda)I've updated Wiki with the 3rd alternative method:
http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessagingUser_Deploying_a_scoped_MDB_container
Thanks
Madhu -
19. Re: Remote JMS server
jeanbobby Oct 31, 2006 10:48 AM (in response to mskonda)Hi guys,
Im trying to setup a remote-standalone JBossMessaging 1.1 Instance.
The 'hosting' standalone server is 4.0.4.GA.
The client(s) are 4.0.4.GAs, with the jms RAR and jms-ds defined as indicated in the remote-messaging wiki.
I want my applications to be able to send/receive msgs first 'programatically', and maybe later with 3.0 MDBs.
My main application is a spring-based war, for my tests it intializes a simple bean injecting a jms template which is based on the JmsXA bound in the private internal namespace.
when sending the test message I first got classpath pbs, included messaging-client to server/myserver/lib, and then got into :java.lang.RuntimeException: Failed to config client side AOP 15:43:39,643 ERROR [SocketClientInvoker] Got marshalling exception, exiting java.io.EOFException at java.io.DataInputStream.readByte(DataInputStream.java:243) at org.jboss.serial.io.JBossObjectInputStream.readByte(JBossObjectInputStream.java:227) at org.jboss.jms.server.remoting.JMSWireFormat.read(JMSWireFormat.java:411) at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.jav a:279) at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143) at org.jboss.remoting.Client.invoke(Client.java:525) at org.jboss.remoting.Client.invoke(Client.java:488) at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.invoke(ClientConnectionFact oryDelegate.java:199) at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$getClientAOPConfig_86975327 01842707646.invokeNext(ClientConnectionFactoryDelegate$getClientAOPConfig_8697532701842707646.java) at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.getClientAOPConfig(ClientCo nnectionFactoryDelegate.java) at org.jboss.jms.client.JBossConnectionFactory.ensureAOPConfigLoaded(JBossConnectionFactory. java:233) at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFacto ry.java:196) at org.jboss.jms.client.JBossConnectionFactory.createXAQueueConnection(JBossConnectionFactor y.java:144) at org.jboss.jms.ConnectionFactoryHelper.createQueueConnection(ConnectionFactoryHelper.java: 147) at org.jboss.resource.adapter.jms.JmsManagedConnection.setup(JmsManagedConnection.java:709) at org.jboss.resource.adapter.jms.JmsManagedConnection.<init>(JmsManagedConnection.java:184) at org.jboss.resource.adapter.jms.JmsManagedConnectionFactory.createManagedConnection(JmsMan agedConnectionFactory.java:106) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventL istener(InternalManagedConnectionPool.java:539) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(Internal ManagedConnectionPool.java:228) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JB ossManagedConnectionPool.java:417) at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConn ectionManager2.java:324) at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectio nManager.java:301) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnec tionManager2.java:379) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.alloca teConnection(BaseConnectionManager2.java:812) at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.allocateConnection(JmsSessionFactory Impl.java:389) at org.jboss.resource.adapter.jms.JmsSessionFactoryImpl.createQueueSession(JmsSessionFactory Impl.java:144) at org.springframework.jms.core.JmsTemplate102.createSession(JmsTemplate102.java:166) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:424) at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:486) at com.digiplug.repository.JmsTest.afterPropertiesSet(JmsTest.java:27)
On the client and on the messaging server :15:58:00,611 ERROR [ServerThread] failed to process invocation. java.io.IOException: Can not read data for version 6. Supported versions: 1,2 at org.jboss.remoting.transport.socket.ServerThread.versionedRead(ServerThread.java:394) at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:446) at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:527) at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:261)
which seems to show a conflict between jboss-remoting versions between client and server... but I saw no directive concerning jboss-remoting in the wiki.
Any help would be appreciated,
Best Regards
Olivier Cuzacq -
20. Re: Remote JMS server
ovidiu.feodorov Oct 31, 2006 7:49 PM (in response to mskonda)This looks like a Remoting version mismatch. Before going any further, this is also good read: http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossMessagingUser_Deploying_a_scoped_MDB_container
The root problems are similar.