Manojkumar
Manojkumar

Reputation: 1361

sometimes I unable to connect to connect to socket using php java bridge

we are using java bridge from PHP application to connect to java application. But at times, connection get failed to connect. Below is the fucntion used to connect. I am not getting what the issue is. Sometimes it works and sometimes it fails to connect. Any persistent connection issues or count is set?

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";
    }
}

Upvotes: 0

Views: 280

Answers (1)

user1135940
user1135940

Reputation: 126

Any persistent connection issues or count is set?

Most likely the back-end ran out of handles. Please note that, in order to obtain a persistent connection to a java "continuation", you'll have to send a servlet engine a POST request first. After that you can pfsockopen() to the java "continuation" the servlet engine has returned and use protocol request

(F p="A"/)

to recycle- and

(F p="F"/)

to put the "continuation" back to the pool.

I have checked the Java.inc code and it doesn't contain the code you have posted. Therefore I assume that you have written custom code to emulate Java.inc.

If so, please make sure to no exceed the bridge thread pool size (20 by default).

Upvotes: 0

Related Questions