当我执行下面的代码时,它将从控制台上的MQ读取数据,然后从队列中删除所有数据。从MQ读取时,我不希望从队列中删除我的数据。我想让它参数化,并且还想将数据写入excel。任何人都可以帮助我解决这个问题。以下是我正在使用的代码。
typedef double (*array2)[2];
extern "C" {
void simulation(array2* array);
}
int main()
{
array2 array;
simulation(&array);
cout << (*array)[0] << endl;
cout << (*array)[1] << endl;
return 0;
}
答案 0 :(得分:3)
以下是我正在使用的代码。
:)您下载了我的MQRead程序。如果您不希望它执行破坏性MQGET,那么您需要更新代码以进行浏览(请参阅JoshMc的评论)。为什么你没有下载我的MQBrowse程序?最后,请开始阅读MQ Knowledge Center,因为它包含很多&amp;初学者到IBM MQ的大量信息。
更新:您不应该使用MQEnvironment类,因为它不是线程安全的。将连接信息放在Hashtable中。请看这里的例子: Java program to connect WMQ with User Id instead of channel
答案 1 :(得分:1)
为了不删除队列中的消息,您需要浏览队列,这可以通过更新openOptions和getOptions来完成,如下所示:
Dim lngRows as long
和
int openOptions = MQC.MQOO_INQUIRE + MQC.MQOO_FAIL_IF_QUIESCING + MQC.MQOO_BROWSE;
在Capitalware的网站上查看这个适用于Java应用程序的IBM MQ类的绝佳列表:Sample IBM MQ Java Code