我们正在使用PHP应用程序中的java桥连接到java应用程序。 但有时,连接无法连接。以下是用于连接的功能。我没有得到问题所在。有时它有效,有时无法连接。是否设置了任何持久连接问题或计数?
function open() {
$errno = null;
$errstr = null;
$socket = JAVA_PERSISTENT_SERVLET_CONNECTIONS ?
pfsockopen("{$this->ssl}{$this->host}", $this->port, $errno, $errstr, 20) :
fsockopen("{$this->ssl}{$this->host}", $this->port, $errno, $errstr, 20);
if (!$socket)
throw new java_ConnectException("Could not connect to the J2EE server {$this->ssl}{$this->host}:{$this->port}. Please start it. Or define('JAVA_HOSTS', 8080); define('JAVA_SERVLET', false); before including 'Java.inc' and try again. Error message: $errstr ($errno)\n");
stream_set_timeout($socket, -1);
return $socket;
}
function java_HttpHandler($protocol, $ssl, $host, $port) {
parent::java_SimpleHttpHandler($protocol, $ssl, $host, $port);
try {
$this->socket = $this->open();
} catch (Exception $e) {
$cogLink = "http://xxxx.xx.com/products/sup_products.asp?prod_id=81174";
echo "eeeeerrrr";
}
}
答案 0 :(得分:0)
是否设置了任何持久连接问题或计数?
最有可能后端用尽了手柄。请注意,为了获得与java“continuation”的持久连接,您必须首先向servlet引擎发送POST请求。之后你可以pfsockopen()到servlet引擎返回的java“continuation”并使用协议请求
(F p =“A”/)
回收 - 和
(F p =“F”/)
将“继续”放回池中。
我检查了Java.inc代码,但它不包含您发布的代码。因此,我假设您已编写自定义代码来模拟Java.inc。
如果是这样,请确保不超过桥接线程池大小(默认为20)。