我的目标是使用WebSphere MQ java编程将n个消息放入for循环中到WebSphere MQ队列.
我的java程序将作为独立程序运行.
如果介于两者之间,我需要回滚所有消息.
如果没有异常,那么我应该提交所有消息.
在我完全完成之前,外界不应该在队列中看到我的消息.我该如何实现这一目标?
根据T.Rob的回复更新了示例代码:
请检查示例代码是否正常?
设置MQGMO_SYNCPOINT只与我的程序调用有关吗?(因为并行运行的类似程序也会将消息放在同一队列中,并且这些消息不会受到程序的SYNCPOINT的影响.)
public void sendMsg() {
MQQueue queue = null;
MQQueueManager queueManager = null;
MQMessage mqMessage = null;
MQPutMessageOptions pmo = null;
System.out.println("Entering..");
try {
MQEnvironment.hostname = "x.x.x.x";
MQEnvironment.channel = "xxx.SVRCONN";
MQEnvironment.port = 9999;
queueManager = new MQQueueManager("XXXQMANAGER");
int openOptions = MQConstants.MQOO_OUTPUT;
queue = queueManager.accessQueue("XXX_QUEUENAME", openOptions, null, null, null);
pmo = new MQPutMessageOptions();
pmo.options = CMQC.MQGMO_SYNCPOINT;
String input = "testing";
System.out.println("sending messages....");
for (int i = 0; i < 10; i++) …Run Code Online (Sandbox Code Playgroud)