IBM WebSphere MQ is a queue messaging system that requires a sender and receiver relationship. One side of IBM WebSphere MQ is installed on Oracle's JD Edwards EnterpriseOne server while the related side is installed on another physical or logical machine. The setup on the JD Edwards EnterpriseOne server enables EnterpriseOne to receive inbound messages from a third-party application or system and to place outbound messages in a queue for processing by the third-party application or system. Refer to the applicable IBM documentation for instructions on installing WebSphere MQ on other machines.
The procedures described in this section assume you have already installed the IBM WebSphere MQ product onto your JD Edwards EnterpriseOne server.
You must set up your JD Edwards EnterpriseOne server so that the system can receive inbound messages from a third-party application or system and then place responses, in the form of outbound messages, in a queue for processing by the third-party application or system.
In addition to information about setting up your JD Edwards EnterpriseOne server, this section also provides examples for:
Communicating between the JD Edwards EnterpriseOne IBM WebSphere MQ Server and the Non-JD Edwards EnterpriseOne IBM WebSphere MQ Server.
Working with IBM WebSphere MQ Queue Manager Commands.
Note:
On all systems, you must add each user that will connect to the WebSphere MQ instance (for example jde910) to the mqm group in /etc/group.Perform the following tasks to set up your JD Edwards EnterpriseOne server so that EnterpriseOne can receive an inbound message from another system or application and respond by placing an outbound message in the outbound queue. If your JD Edwards EnterpriseOne server is an IBM pSeries machine or an HP-UX machine, use the appropriate setup task to set up your machine then proceed to the task titled To create and start the IBM WebSphere MQ Queue Manager. If you have other UNIX platforms, go directly to the task titled To create and start the IBM WebSphere MQ Queue Manager.
Prepare for IBM WebSphere MQ version 6.0 or version 7.0.
Set up your pSeries machine.
Set up your HP machine.
Create and start IBM WebSphere MQ queue manager..
Create MQ local queues..
Create a MQ remote queue..
Create a MQ local sender channel..
Create a MQ local receiver channel..
End the IBM WebSphere MQ queue manager.
Caution:
The names of queues and channels in IBM WebSphere MQ are case-sensitive. Be sure to use capital letters as specified in this document. You can specify any name for a queue or channel. However, it is important that the queue names you create exactly match the queue names you specify in the jde.ini file on the JD Edwards EnterpriseOne server.To setup an IBM AIX (pSeries) machine for WebSphere MQ 6 or MQ 7
Note:
Perform this setup task only if your JD Edwards EnterpriseOne server is an IBM AIX (pSeries) machine when using WebSphere MQ 6 or MQ 7. These steps are not required with WebSphere MQ 8.To properly perform this task, you must be logged on with root authority.
Edit the /etc/services file and add this line:
ibm-mqseries 1414/tcp # WebSphere MQ channel listener
Edit the /etc/inetd.conf file and add this line:
ibm-mqseries stream tcp nowait mqm /usr/mqm/bin/amqcrsta amqcrsta -m JDE_QMGR
After you have made the file edits, you must either refresh the inetd process or kill the process and restart it. Do one of these:
To refresh the inetd process, enter this command:
refresh -s inetd
To kill the inetd process, you must first locate it using this command:
ps -ef | grep inetd
After you have located the inetd process, you can kill it using this command:
kill -1 inetd <process_ID>
where <process_ID> is the ID you determined using the grep command.
Edit the .profile files for each user that will connect to the WebSphere MQ instance (for example jde910 and mqm) to add this export line:
MQSERVER=SYSTEM.DEF.SVRCONN/TCP/<hostname>
Log out these users from step 4, and log them back in to execute the .profile to set MQSERVER.
Note:
Perform this setup task only if your JD Edwards EnterpriseOne server is an HP machine.To properly perform this task, you must be logged on as the UNIX user who starts JD Edwards EnterpriseOne services (for example, jde910).
Edit the .profile file to add the following export line:
export MQS_NO_SYNC_SIGNAL_HANDLING=
Log out and back in to execute the .profile to set MQS_NO_SYNC_SIGNAL_HANDLING.
To create and start WebSphere MQ Queue Manager
On your JD Edwards EnterpriseOne server, open a shell.
To create the queue manager, execute this command:
crtmqm -q JDE_QMGR
This establishes a JDE queue manager as the default queue manager.
To start the queue manager, execute this command:
strmqm JDE_QMGR
You must create these local queues:
INBOUND.Q
SUCCESS.Q
ERROR.Q
DEFRES.Q
OUTBOUND.Q.XMIT
Access the shell you used to start the queue manager.
To start the MQSC facility, enter this command:
runmqsc JDE_QMGR
To create the local queues, run these IBM WebSphere MQ commands:
Define QLOCAL(INBOUND.Q) DEFPSIST(YES)
DESCR('Queue for messages into EnterpriseOne')
Define QLOCAL(SUCCESS.Q) DEFPSIST(YES)
DESCR('Queue for successful messages in EnterpriseOne')
Define QLOCAL(ERROR.Q) DEFPSIST(YES)
DESCR('Queue for error messages in EnterpriseOne')
Define QLOCAL(DEFRES.Q) DEFPSIST(YES)
DESCR('Queue for responses if not in message in EnterpriseOne')
Define QLOCAL(OUTBOUND.Q.XMIT) DEFPSIST(YES)
USAGE(XMITQ) DESCR('Transmit queue to NC system')
In the same shell you used in the previous task, enter this command to create a single MQ remote queue:
Define QREMOTE(OUTBOUND.Q) DEFPSIST(YES)
XMITQ(OUTBOUND.Q.XMIT) RNAME(ECE_IN2MQI)
RQMNAME(ECE_MQI_QMGR) DESCR('EnterpriseOne outbound queue to NC system')
Note:
ECE_IN2MQI is the third-party remote queue name and ECE_MQI_QMGR is the third-party queue manager name.To create a MQ local sender channel
In the same shell you used in the previous task, enter this command to create a MQ local sender channel:
Define CHANNEL(OW2MQI_CHL) CHLTYPE(SDR) TRPTYPE(TCP)
CONNAME(Net Comm Server Name) XMITQ(OUTBOUND.Q.XMIT)
DISCINT(0) DESCR('Sender channel to NC system')
To create a MQ local receiver channel
In the same shell you used in the previous task, enter the following command to create a MQ local receiver channel:
Define CHANNEL('MQI2OW_CHL') CHLTYPE(RCVR) TRPTYPE(TCP) DESCR('Receiver channel from third-party application or system')
To end the IBM WebSphere MQ command mode
When you are finished creating the queues and channels, from the same shell you used in the previous tasks, enter this command:
END
This exits the runmqsc program.
You must set up communications between the JD Edwards EnterpriseOne IBM WebSphere MQ Server (functioning on the EnterpriseOne server) and the third-party IBM WebSphere MQ server. This section provides example tasks for setting up communications. The example communications setup uses these sequenced and machine dependent steps:
Start the Queue Manager on the third-party IBM WebSphere MQ Server.
Start the Queue Manager on the JD Edwards EnterpriseOne IBM WebSphere MQ Server.
Start the channel on the third-party IBM WebSphere MQ Server.
Start the channel on the JD Edwards EnterpriseOne IBM WebSphere MQ Server.
Note:
The first time you start your communications channels, you might need to manually start the sender channel on the local machine and then manually start the receiver channel on the remote machine. After the initial start of the channels, when you start the sender on the local machine, the receiver on the remote machine should automatically start.To start the Queue Manager on the third-party IBM WebSphere MQ Server
Access the third-party IBM WebSphere MQ server.
In a shell, enter this command to start the queue manager:
strmqm ECE_MQI_QMGR
Note:
ECE_MQI_QMGR is the third-party queue manager name.In the same shell, enter these commands to start the listener:
runmqlsr -m JDE_QMGR -t TCP
where this is an interactive command that ends when terminal session ends.
nohup runmqlsr -m JDE_QMGR -t TCP &
where this is set equivalent to batch process and defines no hang up; this is run as background process.
To start the Queue Manager on the JD Edwards EnterpriseOne IBM WebSphere MQ Server
Access the JD Edwards EnterpriseOne IBM WebSphere MQ Server.
In a shell, enter this command to start the Queue Manager:
strmqm ECE_MQI_QMGR
Note:
ECE_MQI_QMGR is the third-party queue manager name.In the same shell, enter these commands to start the listener:
runmqlsr -m JDE_QMGR -t TCP
where this is an interactive command that ends when terminal session ends.
nohup runmqlsr -m JDE_QMGR -t TCP &
where this is set equivalent to batch process and defines no hang up; this is run as background process.
To start channel on the third-party IBM WebSphere MQ Server
Access the third-party IBM WebSphere MQ server.
In the same shell you used to start the Queue Manager, enter these commands:
runmqchl MQI2OW_CHL
runmqchl OW2MQI_CHL
To start the channel on the JD Edwards EnterpriseOne IBM WebSphere MQ server
Access the JD Edwards EnterpriseOne IBM WebSphere MQ server.
In the same shell you used to start the Queue Manager, enter these commands:
runmqchl OW2MQI_CHL
runmqchl MQI2OW_CHL
This table provides example commands that you can use when working with IBM WebSphere MQ Queue Manager commands.
Caution:
The names of queues and channels in IBM WebSphere MQ are case-sensitive. Be sure to use capital letters as specified in this document. You can specify any name for a queue or channel. However, it is important that the queue names you create match the queue names you specify in the jde.ini file on the JD Edwards EnterpriseOne server.Command | Description |
---|---|
strmqm JDE_QMGR | Start the queue manager. |
endmqm -i JDE_QMGR | End the queue manager. The -i switch means immediately. |
runmqsc JDE_QMGR | Start using IBM WebSphere MQ commands. |
display QL(qname.Q) | Display the local queue. |
clear QL(qname.Q) | Clear the local queue. |
END | Stop using IBM WebSphere MQ commands |
amqsbcg qname.Q JDE_QMGR | Run the browse queue command. This does not remove the message. |
runmqchl(channel_name) | Start the channel. |
runmqslr <Gateway Name> TpName JDE_QMGR | Start a listener. <Gateway Name> is the machine on which the listener is being run. |
resetchl (channel_name) | Reset a channel that has become inactive. |