Archived
This forum has been archived. Please start a new discussion on GitHub.
IceGrid Activate Timeout
I am studying to use IceGrid and I do configure right to one node condition. The service in the node can be invoked and activate remotely by using IceGridAdmin. But when I configured for two nodes for a application, neither services in those nodes can be activated. I do see the invocation of the program but hanging in the activate() method, and getting back a activationTimeOut exception after few seconds.
Below is my deploy configuration:
For one node:
<icegrid>
<application name="IceTest">
<node name="Node1">
<server id="MessageServer1"
exe="./startserver"
activation="on-demand">
<adapter name="MessageAdapter"
id="MessageAdapter"
register-process="true"
endpoints="tcp"/>
</server>
</node>
</application>
</icegrid>
For two nodes:
<icegrid>
<application name="IceTest">
<node name="Node1">
<server id="MessageServer1"
exe="./startserver"
activation="on-demand">
<adapter name="MessageAdapter"
register-process="true"
endpoints="tcp"/>
</server>
</node>
<node name="Node2">
<server id="MessageServer2"
exe="./startserver"
activation="on-demand">
<adapter name="MessageAdapter"
register-process="true"
endpoints="tcp"/>
</server>
</node>
</application>
</icegrid>
I think the only different between these two configuration is that I need to remove adapter id from the file. If I add adapter ID to the two-nodes one, the service adding the adpater ID do can be activated. But I see the manual, it is not good to name the same service in the different node using different name.
Do I miss something?
Below is my deploy configuration:
For one node:
<icegrid>
<application name="IceTest">
<node name="Node1">
<server id="MessageServer1"
exe="./startserver"
activation="on-demand">
<adapter name="MessageAdapter"
id="MessageAdapter"
register-process="true"
endpoints="tcp"/>
</server>
</node>
</application>
</icegrid>
For two nodes:
<icegrid>
<application name="IceTest">
<node name="Node1">
<server id="MessageServer1"
exe="./startserver"
activation="on-demand">
<adapter name="MessageAdapter"
register-process="true"
endpoints="tcp"/>
</server>
</node>
<node name="Node2">
<server id="MessageServer2"
exe="./startserver"
activation="on-demand">
<adapter name="MessageAdapter"
register-process="true"
endpoints="tcp"/>
</server>
</node>
</application>
</icegrid>
I think the only different between these two configuration is that I need to remove adapter id from the file. If I add adapter ID to the two-nodes one, the service adding the adpater ID do can be activated. But I see the manual, it is not good to name the same service in the different node using different name.
Do I miss something?
0
Comments
-
By the way, I didn't set the register and node in the same process. So I have one register configuration file and two nodes configuration file.
Register configuration:
IceGrid.Registry.Client.Endpoints=tcp -h 192.168.64.183 -p 10000
IceGrid.Registry.Server.Endpoints=tcp -h 192.168.64.183
IceGrid.Registry.Internal.Endpoints=tcp -h 192.168.64.183
IceGrid.Registry.AdminPermissionsVerifier=IceGrid/NullPermissionsVerifier
IceGrid.Registry.Data=./registry
Node1 configuration:
IceGrid.Node.Endpoints=tcp -h 192.168.64.214
IceGrid.Node.Name=Node1
IceGrid.Node.Data=./node
Ice.Default.Locator=IceGrid/Locator:tcp -h 192.168.64.183 -p 10000
Node2 configuration:
NodeIceGrid.Node.Endpoints=tcp -h 192.168.64.183
IceGrid.Node.Name=Node2
IceGrid.Node.Data=./node
Ice.Default.Locator=IceGrid/Locator:tcp -h 192.168.64.183 -p 10000
Server configuration:
Ice.ServerId=MessageServer1
Ice.ProgramName=IceTest
MessageAdapter.AdapterId=MessageAdapter
MessageAdapter.Endpoints=tcp -h 192.168.64.214 -p 10001
MessageAdapter.Locator=IceGrid/Locator:tcp -h 192.168.64.183 -p 10000
MessageAdapter.RegisterProcess=1
Ice.ThreadPool.Server.Size=30
Ice.ThreadPool.Client.Size=30
Ice.ThreadPool.Client.SizeWarn=100 -
Hi,
Is your server explicitly loading the server configuration file mentioned above? If that's the case, it's most likely the reason why your server can't be activated.
You shouldn't use a configuration file when deploying a server with an XML descriptor. Instead, you should set the properties in the XML descriptor and let IceGrid generate the configuration file (the configuration file is generated in the IceGrid node data directory, see ./node/servers/MessageServer1/config/config).
See also the IceGrid demos for some XML descriptor examples.
Cheers,
Benoit.0 -
Thanks, benoit.
Yeah, it worked. Then , is it possible for me to set threadpool for server in XML?0