Hi Mark,
Thanks for comprehensive answer. My web server is configured to use PHP in single process, so registered communicator is working. Ice_register($ICE, session_id(), session_cache_expire()) in one page allows me to get working communicator pointer when i use $ICE = Ice_find(session_id()) in another. But communicator is not only i need, another object i get from it is router:
PHP Code:
$router = Glacier2_RouterPrxHelper::checkedCast($ICE->getDefaultRouter());
//and finally
$dbshell=Meteor_IDbShellPrxHelper::uncheckedCast($session=$router->createSession($user, $password));
the last one is a subject to save between sessions, i can do it that way:
PHP Code:
$_SESSION["obj_dbshell"] = $ICE->proxyToString($dbshell);
// String here is like "92b32ff4-7d09-4a12-8e39-59163928999b -t:tcp -h 192.168.0.12 -p 10001"
// IP address is an ICE server
and in another page, restore:
PHP Code:
$dbshell=Meteor_IDbShellPrxHelper::checkedCast($ICE->stringToProxy($_SESSION["obj_dbshell"]));
When second page refreshed frequently, all works fine. The only trouble is, if i wait 15-20 seconds, then refresh it, call checkedCast throws Ice_ConnectionLostException. When i do, i have again to get router and call createSession() on it, thus complete login procedure each time page refreshed. Need some guru's help on it, where is this little timeout from, and how to increase it to appropriate value (session_expire() returns 180, so 180 minutes would be fine
)