Friday, April 27, 2012

WLST to send a JMS message

Here the Java version.

from javax.naming import Context, InitialContext
from weblogic.jndi import WLInitialContextFactory
from javax.jms import QueueSession, Queue, Session

properties = Properties()
properties[Context.PROVIDER_URL] = "t3://localhost:7001"
properties[Context.INITIAL_CONTEXT_FACTORY] = WLInitialContextFactory.name
ctx = InitialContext(properties)

connectionFactory = ctx.lookup("weblogic/jms/XAConnectionFactory" )
queueCon = connectionFactory.createQueueConnection();
queueSession = queueCon.createQueueSession( false, Session.AUTO_ACKNOWLEDGE );
queue = ctx.lookup( "jms/testme")
sender = queueSession.createSender( queue );

msg = queueSession.createTextMessage( "I am a pig" );

sender.send( msg );


If you want to resubmit to a JMS queue all the files in a folder, use this:

from javax.naming import Context, InitialContext
from weblogic.jndi import WLInitialContextFactory
from javax.jms import QueueSession, Queue, Session
import os

cfjndi="PVOSBTESTCF"
queuejndi="PV_OSB_TESTQ"
PROVIDER_URL="t3://acme.com:10001,acme.com:10003"
filespath="/opt/oracle/scripts/retrieveErrors/thefilesfailed"

properties = Properties()
properties[Context.PROVIDER_URL] = PROVIDER_URL
properties[Context.INITIAL_CONTEXT_FACTORY] = WLInitialContextFactory.name
properties[Context.SECURITY_PRINCIPAL] = "weblogic"
properties[Context.SECURITY_CREDENTIALS] = "mypassword"
ctx = InitialContext(properties)

connectionFactory = ctx.lookup(cfjndi)
queueCon = connectionFactory.createQueueConnection();
queueSession = queueCon.createQueueSession( false, Session.AUTO_ACKNOWLEDGE );
queue = ctx.lookup(queuejndi)
sender = queueSession.createSender( queue );

for file in os.listdir(filespath):
    current_file = os.path.join(filespath, file)
    data = open(current_file, "rb")
    msg = queueSession.createTextMessage( data.read());
    print "processing ", current_file
    sender.send( msg );
    print "done processing ", current_file





No comments: