ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » H E L P !!!!! Java program that will be triggered...

Post new topic  Reply to topic Goto page 1, 2  Next
 H E L P !!!!! Java program that will be triggered... « View previous topic :: View next topic » 
Author Message
jed
PostPosted: Mon Oct 04, 2004 8:26 pm    Post subject: H E L P !!!!! Java program that will be triggered... Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

I've setup a queue that will trigger a script that contains a java program.
This java program will only just get a message from a queue.

* Why does the segment below don't work?
I'm focusing on the mqQmgr = new MQQueueManager(sQmgr);. It doesn't work when I try the trigger part.
But, if I run the java program on the $ prompt it works.

public static String getMQ(String sQmgr, String sQueue)
{
MQQueueManager mqQmgr;
MQQueue mqQueue;
MQMessage mqMessage;
boolean bNoRetVal = false;

String sMessage = new String();

try
{
mqQmgr = new MQQueueManager(sQmgr);
mqMessage = new MQMessage();
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING;
mqQueue = mqQmgr.accessQueue(sQueue, openOptions); MQGetMessageOptions mqGetOptions = new MQGetMessageOptions();
mqGetOptions.options = MQC.MQGMO_NONE | MQC.MQPMO_FAIL_IF_QUIESCING;
mqQueue.get(mqMessage,mqGetOptions); sMessage = mqMessage.readLine(); mqQmgr.commit();
mqQueue.close();
mqQmgr.disconnect();
}
catch (IOException ioE)
{
writeLog("IO Error : " + ioE);
System.exit(0);
}
catch (MQException mqEx)
{
if (mqEx.completionCode == 2 || mqEx.completionCode == 1)
{
if (mqEx.reasonCode == 2033)
{
bNoRetVal = true;
}
else
{
writeLog("MQ Error : " + mqEx);
System.exit(0);
}
}
}
if (bNoRetVal)
{
return "";
}
else
{
return sMessage;
}
}
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
siliconfish
PostPosted: Mon Oct 04, 2004 8:36 pm    Post subject: Reply with quote

Master

Joined: 12 Aug 2002
Posts: 203
Location: USA

Quote:
Why does the segment below don't work?
I'm focusing on the mqQmgr = new MQQueueManager(sQmgr);. It doesn't work when I try the trigger part.
But, if I run the java program on the $ prompt it works.


What do u mean by "don't work"? What is the error? [/code]
_________________
siliconfish
Back to top
View user's profile Send private message
jed
PostPosted: Mon Oct 04, 2004 8:40 pm    Post subject: Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

it doesn't work meaning......
when i run the java program on the $ prompt.... it gets (MQGET) the message from the queue....
but, when it is run via the queue trigger/process... it doesn't work.
no error... it just hangs up on the new MQQueueManager();
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
siliconfish
PostPosted: Mon Oct 04, 2004 8:48 pm    Post subject: Reply with quote

Master

Joined: 12 Aug 2002
Posts: 203
Location: USA

Why do you think its hanging at that line?
Can u redirect the runmqtrm output to a file or get it from the command line and post it?
_________________
siliconfish
Back to top
View user's profile Send private message
vennela
PostPosted: Mon Oct 04, 2004 8:50 pm    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

What CSD are you at

There is an APAR that is fixed in CSD04 that I bumped into last week

Quote:

IY43961 - A triggered Java application hung when instantiating a
new queue manager object.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
jed
PostPosted: Mon Oct 04, 2004 8:59 pm    Post subject: Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

for ms. vennela here is the result of my mqrc run....

/mrv/home/apmrv/bin>mqver
Name: WebSphere MQ
Version: 530.5 CSD05
CMVC level: p530-05-L030926
BuildType: IKAP - (Production)
/mrv/home/apmrv/bin>
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
jed
PostPosted: Mon Oct 04, 2004 9:03 pm    Post subject: Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

this is for mr. siliconfish....
i've modified my program to display (System.out.println()) as shown below.....

public static String getMQ(String sQmgr, String sQueue)
{
MQQueueManager mqQmgr;
MQQueue mqQueue;
MQMessage mqMessage;
boolean bNoRetVal = false;

String sMessage = new String();

System.out.println("getMQ");
try
{
MQEnvironment.hostname = null;
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
System.out.println("new MQQueueManager() : " + sQmgr);
mqQmgr = new MQQueueManager(sQmgr);

System.out.println("new MQMessage()");
mqMessage = new MQMessage();

System.out.println("openOptions");
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING;

System.out.println("accessQueue");
mqQueue = mqQmgr.accessQueue(sQueue, openOptions); // Accessing
the queue

MQGetMessageOptions mqGetOptions = new MQGetMessageOptions(); // Get options

mqGetOptions.options = MQC.MQGMO_NONE | MQC.MQPMO_FAIL_IF_QUIESCING;

System.out.println("mq.Queue.get");
mqQueue.get(mqMessage,mqGetOptions); // G
et the message

sMessage = mqMessage.readLine();
// Read the message

System.out.println("mqQmgr.commit");
mqQmgr.commit();

mqQueue.close();

mqQmgr.disconnect();
}
catch (IOException ioE)
{
System.out.println("IO Error : " + ioE);
System.exit(0);
}
catch (MQException mqEx)
{
if (mqEx.completionCode == 2 || mqEx.completionCode == 1)
{
if (mqEx.reasonCode == 2033)
{
bNoRetVal = true;
}
else
{
System.out.println("MQ Error : " + mqEx);
System.exit(0);
}
}
}
if (bNoRetVal)
{
return "";
}
else
{
return sMessage;
}
}


and........ here's the successful run when i execute the program on $prompt...

/mrv/home/apmrv/bin>BILLPSR.SH
executing BillPsr
Program Starts!
Args[0] : bill
vProcess
bProcessConfigFile
getMQ
new MQQueueManager() : QM.R501780
new MQMessage()
openOptions
accessQueue
mq.Queue.get
mqQmgr.commit
After getMQ!
Program Ends!
BillPsr has just finished

by the way, i use a script to call the java program... script is below....
/mrv/home/apmrv/bin>cat BILLPSR.SH
#!/usr/bin/ksh
cd /mrv/home/apmrv/bin
echo "executing BillPsr"
export AAA=`date`
java BillPsr bill $AAA
echo "BillPsr has just finished"


and... here is the erroneous output on the mq trigger of the java program...

/mrv/home/apmrv/bin>trigq
5724-B41 (C) Copyright IBM Corp. 1994, 2002. ALL RIGHTS RESERVED.
WebSphere MQ trigger monitor started.

__________________________________________________
Waiting for a trigger message

BILLPSR.SH 'TMC 2QM.R501780.LQ BILLPSR BILLPSR.SH QM.R501780 '
executing BillPsr
Program Starts!
Args[0] : bill
vProcess
bProcessConfigFile
getMQ
new MQQueueManager() : QM.R501780
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
vennela
PostPosted: Mon Oct 04, 2004 9:20 pm    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

Try this and see
I found this in the IBM web site on a search for IY43961

Quote:
This APAR introduces a new environment variable named
AMQ_NO_SIGWAIT_SIGTRAP to WebSphere MQ V5.3, which must be used
to make the change effective. Set this environment variable to
a value of 1 (and ensure it is exported) in the shell from which
you start your Java program.


Export the variable and see if it helps
Back to top
View user's profile Send private message Send e-mail Visit poster's website
jed
PostPosted: Mon Oct 04, 2004 9:34 pm    Post subject: Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

but, i already have fix-pack CSD 05....
still doesn't work?

so, i just do.... export AMQ_NO_SIGWAIT_SIGTRAP=1?
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
vennela
PostPosted: Mon Oct 04, 2004 9:37 pm    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

Doesn't hurt to try.
Quote:
export AMQ_NO_SIGWAIT_SIGTRAP=1

Yes, in the shell script that you are triggering.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
jed
PostPosted: Mon Oct 04, 2004 9:55 pm    Post subject: Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

hhhmm..... i don't know if it worked...
but, i got this output from my trigger monitor apps.


/mrv/home/apmrv/bin>runmqtrm -m QM.R501780 -q SYSTEM.DEFAULT.INITIATION.QUEUE
5724-B41 (C) Copyright IBM Corp. 1994, 2002. ALL RIGHTS RESERVED.
WebSphere MQ trigger monitor started.

__________________________________________________
Waiting for a trigger message

BILLPSR.SH 'TMC 2QM.R501780.LQ BILLPSR BILLPSR.SH QM.R501780 '
executing BillPsr
Program Starts!
Args[0] : bill
vProcess
bProcessConfigFile
getMQ
new MQQueueManager() : QM.R501780
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't find library mqjbnd05 (libmqjbnd05.a or .so) in java.library.path
java.library.path=/usr/java130/jre/bin:/usr/java130/jre/bin/classic::/usr/lib
at java.lang.ClassLoader.loadLibrary(ClassLoader.java(Compiled Code))
at java.lang.Runtime.loadLibrary0(Runtime.java:780)
at java.lang.System.loadLibrary(System.java:865)
at com.ibm.mq.MQSESSION.loadLib(MQSESSION.java:855)
at com.ibm.mq.server.MQSESSION$1.run(MQSESSION.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at com.ibm.mq.server.MQSESSION.<clinit>(MQSESSION.java:215)
BillPsr has just finished
Error starting triggered application.
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
jed
PostPosted: Mon Oct 04, 2004 9:59 pm    Post subject: Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

this is my classpath and libpath.....

/mrv/home/apmrv/bin>echo $CLASSPATH
/usr/mqm/java/lib/com.ibm.mq.jar:/usr/mqm/java/lib/jta.jar:/usr/mqm/java/lib/connector.jar:/usr/mqm/samp/java/base:.
/mrv/home/apmrv/bin>echo $LIBPATH
/usr/mqm/java/lib

did i miss anything?
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
vennela
PostPosted: Mon Oct 04, 2004 10:04 pm    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

What OS are you running on.
Depending on the OS you need to set the env variable
AIX LIBPATH
HP-UX SHLIB_PATH
Solaris & Linux LD_LIBRARY_PATH

Setting that would get ri of the error that you mentioned.
Looks like you are one step closer for me.

Make sure you have them visible inside the script.

If that doesn't work then I might be misleading you to something then.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
jed
PostPosted: Mon Oct 04, 2004 10:10 pm    Post subject: Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

i've already set the LIBPATH... i'm using AIX 5.1
its set as.... export LIBPATH=/usr/mqm/java/lib as per IBM docs.
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
jed
PostPosted: Mon Oct 04, 2004 10:14 pm    Post subject: Reply with quote

Centurion

Joined: 08 Jan 2004
Posts: 118
Location: MI, USA

IT WORKED!!!!!!

I just modified the script that i was using to run the java program...
Here's the script..... Doggone it! I've already defined the CLASSPATH and LIBPATH on the .profile.... How come it did not work? It only worked when i added those into the script....


/mrv/home/apmrv/bin>cat BILLPSR.SH
#!/usr/bin/ksh
cd /mrv/home/apmrv/bin
echo "executing BillPsr"
export CLASSPATH=/usr/mqm/java/lib/com.ibm.mq.jar:/usr/mqm/java/lib/jta.jar:/usr/mqm/java/lib/connector.jar:/usr/mqm/samp/java/base:/mrv/home/apmrv/EB2MINT/LibDir/eb2mint2.jar:.
export LIBPATH=/usr/mqm/java/lib
export AAA=`date`
java BillPsr bill $AAA
echo "BillPsr has just finished"
_________________
Jed
Back to top
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » IBM MQ Java / JMS » H E L P !!!!! Java program that will be triggered...
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.