Archived
This forum has been archived. Please start a new discussion on GitHub.
Activation of IceStorm application
pjtait
in Help Center
I have IceGrid deploying and activating the IceStorm service, but I can't see how to get IceGrid to activate the program that implements the publisher on-demand. The "exe" attribute is taken up with starting the "icebox" executable.
Is there a way to do this, or do I have to make other arrangements to start up the publisher program?
Is there a way to do this, or do I have to make other arrangements to start up the publisher program?
0
Comments
-
I'm already using the template
...but it doesn't seem to allow for activating the Publisher program, only icebox.
My application.xml is shown below. You'll see that I am activating icebox on demand. It's not clear to me how I can also activate my Publisher program. I have been combing through the newsletters and articles, but this doesn't seem to be addressed.
<icegrid>
<application name="IRS1MonData">
<server-template id="IceStorm">
<parameter name="topic-manager-endpoints" default="default"/>
<parameter name="publish-endpoints" default="default"/>
<parameter name="node-endpoints" default="default"/>
<parameter name="instance-name"/>
<icebox id="${instance-name}" exe="icebox" activation="on-demand">
<service name="IceStorm" entry="IceStormService,33:createIceStorm">
<dbenv name="${service}"/>
<adapter name="${service}.TopicManager" endpoints="${topic-manager-endpoints}">
<object identity="${instance-name}/TopicManager" type="::IceStorm::TopicManager"/>
</adapter>
<adapter name="${service}.Publish"
endpoints="${publish-endpoints}"/>
<adapter name="${service}.Node"
endpoints="${node-endpoints}"/>
<properties>
<property name="${service}.InstanceName" value="${instance-name}"/>
<property name="${service}.Trace.TopicManager" value="2"/>
<property name="${service}.Trace.Topic" value="1"/>
<property name="${service}.Trace.Subscriber" value="1"/>
<property name="${service}.Trace.Election" value="1"/>
</properties>
</service>
</icebox>
</server-template>
<node name="irs1mon">
<server-instance template="IceStorm" instance-name="IRS1MonData"/>
</node>
</application>
</icegrid>0 -
Clarifying my question
Let me put my question in terms of one of the example programs in the demos tar file.
It is quite clear to me how to configure IceGrid to deploy the IceStorm service - there are many examples.
However, what seems to be missing is a way to deploy the Publisher executable, so that it is activated on demand when the first Subscriber executable is run.
This doesn't seem to be addressed in any newsletter article, or any forum thread that I can find.
Thanks for any pointers.0 -
Hi Philip,
IceGrid manages servers with indirect object adapters, and can start such servers on demand. IceBox is an example of such a server.
As far as Ice is concerned, a publisher is just an IceStorm client: it does not implement any object or host any object adapter, it just send messages to topics (implemented by IceStorm), and IceStorm then forwards these messages to subscribers (= objects hosted by object adapters).
You can't instruct IceGrid to start an Ice client on demand. If you want to configure your publisher to start on demand, this publisher has to be a server with an indirect object adapter, and it's the first call to an object hosted by this server that would trigger its "on-demand" start.
Hope this is clearer now!
Bernard0
