【问题标题】:Error in perl producer to connect to activemq serverperl 生产者连接到 activemq 服务器时出错
【发布时间】:2012-11-23 05:16:16
【问题描述】:

我正在尝试让 perl 生产者与 ActiveMq 交谈。请找到我尝试过的代码。它给了我一个错误 "* Net::STOMP::Client::IO::receive_data(): cannot sysread(): EOF"**

调试后错误在$stomp->connect(); 请让我知道为什么此时会出现此错误...我无法在网上找到很多关于此的帮助..

提前致谢

我尝试远程登录到我尝试连接的 url。首先它正在连接,最后它是一些错误消息,如下所示:

CacheEnabledSizePrefixDisabled MaxInactivityDurationInitalDelay'TcpNoDelayEnabledMaxInactivityDurationu0TightEncodingEnabledStackTraceEnabledPuTTY
Connection closed by foreign host.

这意味着连接正在关闭。

这些是我怀疑存在错误的代理日志:

2012-12-07 14:44:12,021 | WARN  | Transport Connection to: tcp://127.0.0.1:57404 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:57404@61616
2012-12-07 14:44:12,021 | WARN  | Transport Connection to: tcp://127.0.0.1:57403 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:57403@61616
2012-12-07 14:44:12,024 | WARN  | Transport Connection to: tcp://127.0.0.1:57405 failed: java.io.IOException: Unknown data type: 47 | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:57405@61616
2012-12-07 14:44:12,024 | WARN  | Transport Connection to: tcp://127.0.0.1:57405 failed: org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed: tcp://127.0.0.1:57405 | org.apache.activemq.broker.TransportConnection.Transport | Async Exception Handler
2012-12-07 16:08:55,045 | WARN  | Transport Connection to: tcp://127.0.0.1:58008 failed: java.io.IOException: Unknown data type: 69 | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///127.0.0.1:58008@61616
2012-12-07 16:08:55,045 | WARN  | Transport Connection to: tcp://127.0.0.1:58008 failed: org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed: tcp://127.0.0.1:58008 | org.apache.activemq.broker.TransportConnection.Transport | Async Exception Handler

代码:

#! /usr/bin/perl

use strict;
use warnings;

use Net::STOMP::Client;
my $stomp = Net::STOMP::Client->new(uri => "tcp://$url:$port");
my $peer = $stomp->peer();
  printf("connected to broker %s (IP %s), port %d\n",
      $peer->host(), $peer->addr(), $peer->port());
  $stomp->connect();
  printf("speaking STOMP %s with server %s\n",
      $stomp->version(), $stomp->server() || "UNKNOWN");
  printf("session %s started\n", $stomp->session());
  $stomp->disconnect();
  printf("session ended\n");

【问题讨论】:

  • 发布的示例代码中的哪一行给出了错误,如果没有更多信息,很难猜测出了什么问题。代理日志也是查看的好地方。
  • 代理配置是什么样的?

标签: perl activemq eof stomp producer


【解决方案1】:

如果您告诉我们错误发生在哪一行会有所帮助,因为这会指出哪个调用因该错误而失败。

Perl 的 STOMP 库有一些非常错误的版本。确保您使用的是 CPAN 的最新版本,而不是系统上预装的旧版本。

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 2015-07-23
    • 1970-01-01
    • 2013-01-28
    • 2013-11-08
    相关资源
    最近更新 更多