[Messaging, JMS & JBossMQ] - Best practices for multiple environments
by svadu
Hi,
I have 3 different environments - development, test and production. For each of the environment I have a different queue, like this: queue/devQueue, queue/testQueue and queue/prodQueue.
Now I would like the name of the queue being configured outside of the application so I dont have to change anything to deploy it to any of the environments. Right now I have 2 more or less feasible options:
1. Create bridge between 2 queues (I use Tibco as external JMS provider and it offers this feature), so that I only configure one queue (for example queue/VirtualQueue) in the application and let the JMS server to re-route it.
2. Use resource filtering (what ant or maven can do) during the build and deployment so that the real queue name will be placed in the application instead of a placeholder.
Option 1 seems to be more attractive because the dev. environment would be totally independent on the destination. However I don't want to be dependent on vendor enhancements (or is this functionality offered by pretty much every JMS vendor). Option 2 seems messy at all as I would need a switch to use if I want to change the destination.
Are there better alternatives and what are the best practices?
Thanks in advance.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4105078#4105078
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4105078
18 years, 8 months
[Messaging, JMS & JBossMQ] - Weblogic to Jboss bridge gets RMI class loader disabled erro
by whafrog
Hi we're in the process of migrating all our apps off weblogic 7 to jboss 4.2. We can only do this one app at a time. A couple of the apps send messages to each other through weblogic's jms. We've finished migrating our first app to jboss (App1) and would like to send messages to the old weblogic app (App2). Now it gets sticky :-)
Weblogic 7 does not have client jars, so to do any "pushing" from App1(jboss) to App2(weblogic) would require App1 to have the entire weblogic.jar file. Bad idea. So I was hoping to "pull" from App1 by using an MDB in App2 set up to monitor the App1 queue. We're already doing this successfully with another weblogic 7 app (monitoring a jboss 3.03 queue), so the setup should be the same.
However, my MDB doesn't deploy due to a "no security manager" error. A wrinkle: weblogic 7 runs under jdk1.3.1, so I used the client jars from jboss 3.03, even though the app I'm connecting to is running under jboss 4.2.0GA. The JNDI properties (factories, etc) haven't changed. Should I be using the jboss 4.2 client jars even though my app runs on jdk1.3.1?
I have also tried XAConnectionFactory, but with no success.
The Error:
2007-11-11 21:03:24,171 | logging.Logger:debug | Extracting SpyConnectionFactory from reference
| javax.naming.NamingException: Invalid reference. Error: org.jboss.mq.il.uil2.UILServerIL (no security manager: RMI class loader disabled)
| at org.jboss.mq.referenceable.ObjectRefAddr.extractObjectRefFrom(ObjectRefAddr.java:82)
| at org.jboss.mq.referenceable.SpyConnectionFactoryObjectFactory.getObjectInstance(SpyConnectionFactoryObjectFactory.java:48)
| at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:299)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:549)
| at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:440)
| at javax.naming.InitialContext.lookup(InitialContext.java:345)
| at weblogic.ejb20.internal.JMSConnectionPoller.getConnection(JMSConnectionPoller.java:516)
| at weblogic.ejb20.internal.JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:1643)
| at weblogic.ejb20.internal.JMSConnectionPoller.connectToJMS(JMSConnectionPoller.java:991)
| at weblogic.ejb20.internal.JMSConnectionPoller.startJMSConnectionPolling(JMSConnectionPoller.java:759)
| at weblogic.ejb20.deployer.MessageDrivenBeanPoolInfoImpl.start(MessageDrivenBeanPoolInfoImpl.java:213)
| at weblogic.ejb20.deployer.EJBDeployer.deployMessageDrivenBeans(EJBDeployer.java:1524)
| at weblogic.ejb20.deployer.EJBDeployer.start(EJBDeployer.java:1381)
| at weblogic.ejb20.deployer.EJBModule.start(EJBModule.java:404)
| at weblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer.java:983)
| at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:969)
| at weblogic.management.deploy.slave.SlaveDeployer.setActivationStateForAllApplications(SlaveDeployer.java:619)
| at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:376)
| at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:235)
| at weblogic.t3.srvr.ServerLifeCycleList.resume(ServerLifeCycleList.java:61)
| at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:806)
| at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:295)
| at weblogic.Server.main(Server.java:32)
ejb-jar.xml:
<message-driven>
| <ejb-name>AMessageBean</ejb-name>
| <ejb-class>com.something.somewhere.ambd.AMessageBean</ejb-class>
| <transaction-type>Container</transaction-type>
| <message-selector>Destination='App2'</message-selector>
| <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
| <message-driven-destination>
| <destination-type>javax.jms.Queue</destination-type>
| </message-driven-destination>
| </message-driven>
weblogic-ejb-jar.xml:
<weblogic-enterprise-bean>
| <ejb-name>AMessageBean</ejb-name>
| <message-driven-descriptor>
| <pool>
| <max-beans-in-free-pool>10</max-beans-in-free-pool>
| <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
| </pool>
| <destination-jndi-name>queue/AQueue</destination-jndi-name>
| <initial-context-factory>org.jnp.interfaces.NamingContextFactory</initial-context-factory>
| <provider-url>jnp://localhost:1099</provider-url>
| <connection-factory-jndi-name>ConnectionFactory</connection-factory-jndi-name>
| </message-driven-descriptor>
| <jndi-name>jms/AMessageBean</jndi-name>
| </weblogic-enterprise-bean>
How can I "enable" the RMI class loader"? Any help, or alternate communication suggestions, would be appreciated. Thanks!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4105076#4105076
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4105076
18 years, 8 months
[JBoss Seam] - Re: JBoss Tools candidate release
by samdoyle
Thanks for getting back to me Max,
Yes, this is what I tried to do, I installed the Glassfish adapter and tried to create a new Seam based project using it. I'll try the other route you mentioned. Could it be made compatible so that it would work with new Seam projects? I'm not sure what the issues are involved in doing this?
Am I losing anything by not being able to create a Seam Project?
Thanks, S.D.
"max.andersen(a)jboss.com" wrote :
| samdoyle:
| You can use JBossTools/RHDS with Glassfish - you just need to use the Glassfish WTP adapter. the only that won't work is the Seam Wizard Project creation since Glassfish WTP adapter is not listed as compatible with jst.seam. Note: if you have an existing project you can use the seam related features like jsf, el code completion, seam views etc. without any issues.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4105075#4105075
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4105075
18 years, 8 months