Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 浏览hasMoreElements()中的服务总线队列挂起_Java_Amqp_Servicebus_Azureservicebus_Qpid - Fatal编程技术网

Java 浏览hasMoreElements()中的服务总线队列挂起

Java 浏览hasMoreElements()中的服务总线队列挂起,java,amqp,servicebus,azureservicebus,qpid,Java,Amqp,Servicebus,Azureservicebus,Qpid,我们有内部服务总线安装。我可以使用QPID AMQP 1.0 0.24客户端发布和订阅/阅读消息。但是队列浏览不起作用,当队列中没有更多消息时,对hasMoreElements()的调用将无限期挂起。堆栈跟踪是: Thread [main] (Suspended) waiting for: ConnectionEndpoint (id=19) Object.wait(long) line: not available [native method] ConnectionEn

我们有内部服务总线安装。我可以使用QPID AMQP 1.0 0.24客户端发布和订阅/阅读消息。但是队列浏览不起作用,当队列中没有更多消息时,对hasMoreElements()的调用将无限期挂起。堆栈跟踪是:

Thread [main] (Suspended)   
waiting for: ConnectionEndpoint  (id=19)    
Object.wait(long) line: not available [native method]   
ConnectionEndpoint(Object).wait() line: 503 
Receiver.drainWait() line: 533  
QueueBrowserImpl$MessageEnumeration.hasMoreElements() line: 154 
Qpid.testBrowseTopic(Connection, Context) line: 209 
Qpid.runTest(Qpid$Options) line: 93 
Qpid.main(String[]) line: 63    
守则:

ConnectionFactory ConnectionFactory=(ConnectionFactory)context.lookup(“MS_服务_总线”); connection=connectionFactory.createConnection()

session=connection.createSession(false/*transact*/,session.AUTO_-ACKNOWLEDGE);
Queue Queue=(Queue)context.lookup(“我的队列”);
browser=session.createBrowser(队列);
枚举msgs=browser.getEnumeration();
而(msgs.hasMoreElements()){//在没有更多消息时挂起
Message Message=msgs.nextElement();
//打印消息(消息);
}
QPID 0.22的行为相同。QPID客户端或服务总线中是否存在此错误


谢谢,简这里有两件事:

1) 服务总线此时不支持通过AMQP浏览消息。由于会话是使用AUTO_ACKNOWLEDGE创建的,因此从枚举中获得的每条消息都会立即从队列中删除


2) 我复制了QPid为0.25的hang-in hasMoreElements()。hasMoreElements()似乎正在等待更多消息到达队列,至少在第一次。如果我发送更多消息,循环将继续,一些新到达的消息将被返回,但它会很快停止。我仍在调查,以确定那里发生了什么。

这里发生了两件事:

1) 服务总线此时不支持通过AMQP浏览消息。由于会话是使用AUTO_ACKNOWLEDGE创建的,因此从枚举中获得的每条消息都会立即从队列中删除


2) 我复制了QPid为0.25的hang-in hasMoreElements()。hasMoreElements()似乎正在等待更多消息到达队列,至少在第一次。如果我发送更多消息,循环将继续,一些新到达的消息将被返回,但它会很快停止。我仍在调查,以确定那里发生了什么。

这里发生了两件事:

1) 服务总线此时不支持通过AMQP浏览消息。由于会话是使用AUTO_ACKNOWLEDGE创建的,因此从枚举中获得的每条消息都会立即从队列中删除


2) 我复制了QPid为0.25的hang-in hasMoreElements()。hasMoreElements()似乎正在等待更多消息到达队列,至少在第一次。如果我发送更多消息,循环将继续,一些新到达的消息将被返回,但它会很快停止。我仍在调查,以确定那里发生了什么。

这里发生了两件事:

1) 服务总线此时不支持通过AMQP浏览消息。由于会话是使用AUTO_ACKNOWLEDGE创建的,因此从枚举中获得的每条消息都会立即从队列中删除


2) 我复制了QPid为0.25的hang-in hasMoreElements()。hasMoreElements()似乎正在等待更多消息到达队列,至少在第一次。如果我发送更多消息,循环将继续,一些新到达的消息将被返回,但它会很快停止。我仍在调查以确定那里发生了什么。

即使使用Session.CLIENT\u ACKNOWLEDGE,消息也会从队列中删除。我认为这种模式只有在使用connection.start()和receive()时才有效。未实现功能列表:这是相关问题吗?使用QPID 0.26 RC4检查,仍然挂起。但是James说目前不支持,因此可能也是代理问题。请尝试使用其他代理执行相同操作。即使使用Session.CLIENT\u ACKNOWLEDGE,消息也会从队列中删除。我认为这种模式只有在使用connection.start()和receive()时才有效。未实现功能列表:这是相关问题吗?使用QPID 0.26 RC4检查,仍然挂起。但是James说目前不支持,因此可能也是代理问题。请尝试使用其他代理执行相同操作。即使使用Session.CLIENT\u ACKNOWLEDGE,消息也会从队列中删除。我认为这种模式只有在使用connection.start()和receive()时才有效。未实现功能列表:这是相关问题吗?使用QPID 0.26 RC4检查,仍然挂起。但是James说目前不支持,因此可能也是代理问题。请尝试使用其他代理执行相同操作。即使使用Session.CLIENT\u ACKNOWLEDGE,消息也会从队列中删除。我认为这种模式只有在使用connection.start()和receive()时才有效。未实现功能列表:这是相关问题吗?使用QPID 0.26 RC4检查,仍然挂起。但是James说现在不支持它,所以这可能也是代理问题。请尝试使用其他代理。
session = connection.createSession(false/*transacted*/, Session.AUTO_ACKNOWLEDGE);

Queue queue = (Queue) context.lookup("MY_QUEUE");

browser = session.createBrowser(queue);

Enumeration<Message> msgs = browser.getEnumeration();

while (msgs.hasMoreElements()) {// hangs when there are no more messages
    Message message = msgs.nextElement();
    //printMessage(message);
}