[jboss-user] [Beginners Corner] - How do I communicate with an openjms server
dheth
do-not-reply at jboss.com
Wed Sep 27 16:09:45 EDT 2006
I have an application that uses JNI to execute some legacy code I wrote a million years ago. It is not reentrant so I prefer to execute it outside of jboss. I have implemented this inside jboss and it works there but has concurrency issues that can really cause problems with jboss.
I can bring up an openjms server on port 6969 (i know i am a cad) and I can execute my stuff via queue on this server. I am able to run an example on my openjms server but I can't for the life of me figure out how to configure this properly so I can connect to the openjms server via jboss.
I have a feeling that this is a problem with adding some jndi configuration to the following files:
jms-ds.xml
standardjboss.xml (possibly)
Could someone help me out here on what the steps are to get this working?
Below is the send code I am using inside jboss.
public static String sendMyMessage(Serializable payload, String connectionFactoryJndiName, String destinationJndiName) throws JmsProducerException
{
String replyString = null;
String result;
Context jndiContext = null;
QueueConnectionFactory factory = null;
QueueConnection connection = null;
QueueConnection Rconnection = null;
String factoryName = "openJMSProvider";
String destName = "ReadResults";
String modelName = null;
String xmlName = null;
boolean runQuickLook = false;
Queue dest = null;
Queue queueDest = null;
QueueSession session = null;
QueueSession Rsession = null;
QueueSender sender = null;
String text = "";
boolean runTest = false;
Queue clientQueue = null;
try
{
System.out.println("1 Here");
jndiContext = new InitialContext();
// look up the ConnectionFactory
System.out.println("2 Here");
factory = (QueueConnectionFactory)jndiContext.lookup(factoryName);
// look up the Destination
System.out.println("3 Here");
dest = (Queue)jndiContext.lookup(destName);
// create the connection
System.out.println("4 Here");
connection = factory.createQueueConnection();
// create the session
System.out.println("5 Here");
session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
// create the sender
System.out.println("6 Here");
sender = session.createSender(dest);
// Create Receiver Connection
System.out.println("7 Here");
Rconnection = factory.createQueueConnection();
Rsession = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
clientQueue = Rsession.createTemporaryQueue();
//clientQueue = Rsession.createQueue("PAFSClientListenerQueue");
// clientQueue = (Queue)jndiContext.lookup("PAFSClientListenerQueue");
// clientQueue = (Queue)jndiContext.lookup("ReadResults");
// start the connection, to enable message sends
connection.start();
Message message = session.createObjectMessage(payload);
message.setJMSReplyTo(clientQueue);
sender.send(message);
Message msg = null;
String messageID = message.getJMSMessageID();
String myFilter = "JMSCorrelationID = '" + messageID + "'";
QueueReceiver qReceiver = null;
qReceiver = Rsession.createReceiver(clientQueue, myFilter);
System.out.println(" Wait for reply msg...");
Rconnection.start();
msg = qReceiver.receive(15000);
if (msg == null)
{
replyString = "No reply message retrieved, queue timeout\n";
result = "No reply message retrieved, queue timeout\n";
}
else
{
if (msg instanceof TextMessage)
{
replyString = ((TextMessage)msg).getText();
result = "Reply Success";
}
else
{
replyString = "Reply not text message";
result = "Reply not text message";
}
}
System.out.println(" Server reply: " + result + "\n Server Result: \n" + replyString);
} // end of try
catch (JMSException exception)
{
exception.printStackTrace();
}
catch (NamingException exception)
{
exception.printStackTrace();
}
finally
{
// close the context
if (jndiContext != null)
{
try
{
jndiContext.close();
}
catch (NamingException exception)
{
exception.printStackTrace();
}
}
}// end of finally
// close the connection
if (connection != null)
{
try
{
connection.close();
}
catch (JMSException exception)
{
exception.printStackTrace();
}
}
if (Rconnection != null)
{
try
{
Rconnection.close();
}
catch (JMSException exception)
{
exception.printStackTrace();
}
}
return replyString;
} // end of method
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3974675#3974675
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3974675
More information about the jboss-user
mailing list