Archived

This forum has been archived. Please start a new discussion on GitHub.

Problem with IcePatch2 and IceGrid

Hello,

I can't make IcePatch2 to patch my application when used under IceGrid. I'm using Ice 3.2.1 with .net 2.0 on win xp sp2.

My descriptor file looks like this:
<icegrid>
   <application name="RainbowIce2">
      <distrib icepatch="${application}.IcePatch2/server"/>
      <service-template id="RainbowFactoryServiceTemplate">
         <parameter name="name"/>
         <service name="${name}" entry="RainbowService.dll:RainbowService.RainbowFactoryService">
            <properties>
               <property name="${name}.RegisterProcess" value="true"/>
               <property name="Ice.ServerId" value="${name}"/>
            </properties>
            <adapter name="${service}" endpoints="default" id="${server}.${service}" register-process="true" replica-group="RainbowFactoryReplica"/>
         </service>
      </service-template>
      <server-template id="IceBoxRainbowServerTemplate">
         <parameter name="index"/>
         <icebox id="IceBoxRainbow${index}" activation="on-demand" application-distrib="false" exe="d:\Program Files\Ice-3.2.1\bin\iceboxnet.exe" pwd="d:\icegrid\rainbowice\bin">
            <properties>
               <property name="IceBox.InstanceName" value="${server}"/>
               <property name="IceBox.ServiceManager.RegisterProcess" value="1"/>
               <property name="IceBox.ServiceManager.Endpoints" value="tcp -h 127.0.0.1"/>
            </properties>
            <distrib icepatch="${application}.IcePatch2/server">
               <directory>bin</directory>
               <directory>cfg</directory>
            </distrib>
            <service-instance template="RainbowFactoryServiceTemplate" name="RainbowService"/>
         </icebox>
      </server-template>      
      <replica-group id="RainbowFactoryReplica">
         <load-balancing type="adaptive" load-sample="1" n-replicas="0"/>
         <object identity="RainbowFactory" type="::Rainbow::RainbowFactory"/>
      </replica-group>
      <node name="Node1">
         <server-instance template="IceBoxRainbowServerTemplate" index="1"/>
         <server-instance template="IcePatch2" directory="d:\cs_repo\PSR\lab_ice\RainbowIce_withServices\icegrid\rainbowice\node_template"/>
      </node>
      <node name="Node2">
         <server-instance template="IceBoxRainbowServerTemplate" index="2"/>
      </node>
   </application>
</icegrid>

This configuration works perfectly (I've omitted IcePatch related templates, they were left unmodified), client is able to get a proxy and execute methods. The only problem is with patching - both automatic and by-hand (from icegridadmin) patches result in no action; no files are copied, no info about patching when using IceGrid.Node.Trace.Patch=3. On the other hand, when I invoke icepatch2client from cmd line - it works perfectly. What's wrong with this config?

Best regards,
Łukasz Piątkowski

Comments

  • benoit
    benoit Rennes, France
    Hi,

    Did you try to enable the tracing on the registry in addition to the node? If not, try to start the IceGrid registry with the IceGrid.Registry.Trace.Patch property set to 1.

    Cheers,
    Benoit.
  • Here's the result of tracing enabled on registry (all servers - 2 application and 1 IcePtach are activated on-demand and currently stoped). I tried to force patching on both application servers:
    [ 01/07/08 10:20:45.262 Patch: started patching of server `IceBoxRainbow1' on node `Node1' ]
    [ 01/07/08 10:20:45.373 Patch: finished patching of server `IceBoxRainbow1' on node `Node1' ]
    [ 01/07/08 10:21:28.912 Patch: started patching of server `IceBoxRainbow2' on node `Node2' ]
    [ 01/07/08 10:21:29.012 Patch: finished patching of server `IceBoxRainbow2' on node `Node2' ]
    

    Despite of that messages icePatch2 server isn't activated, no patching trace messages are displayed on Nodes and of course no files are copied. I still don't have an idea whats wrong with this configuration:|

    Best regards,
    Łukasz Piątkowski
  • benoit
    benoit Rennes, France
    Hi,

    Ok, I was able to reproduce the problem using a descriptor similar to yours. The problems come from the setting of the application-distrib attribute to false in the definition of your IceBox server template. There's a bug in IceGrid that prevents patching servers with this flag set to false.

    Thanks for pointing this out, we'll fix this for the next release! In the meantime, you should either remove the distrib definition at the application level or not set this flag to false.

    Cheers,
    Benoit.