13 Replies Latest reply on May 25, 2007 12:04 PM by burrsutter

    updating service action attributes at run time

    system.out

      I need to update the action attributes at run time. Does ESB api provide any means to update service actions at run time?
      In Webinar Burr mentioned it is possible to do it through hot deployment of jboss-esb.xml using groovy. Hot deployment may interfer with active transactions already in place, isn't it? Plus it may cause a serious interruption in product availability in production.

      One solution would be to read the attributes from database within action class. Any better solution?

        • 1. Re: updating service action attributes at run time
          kurtstam

          Our actions have lifecycle support, so upon hot deployment it goes down gracefully, finishes active requests, and does not accept any more incoming messages until it is back up.

          All of this can be done by simply redploying the .esb archive. If you want to update just one action, you can use groovy scripting to modify an action at runtime (see the groovy QuickStart) and then touch the jboss-esb.xml.

          If your action is stateful then you will need to save of state in the 'destroy'method of your action, and you read it back in in 'initialise' (UK spelling)

          --Kurt

          • 2. Re: updating service action attributes at run time
            kconner

             

            "kurt.stam@jboss.com" wrote:
            'initialise' (UK spelling)

            ROFL. We were first ;)

            • 3. Re: updating service action attributes at run time
              tfennelly

               

              "Kevin.Conner@jboss.com" wrote:
              "kurt.stam@jboss.com" wrote:
              'initialise' (UK spelling)

              ROFL. We were first ;)


              Yeah... Kurt should have said "Original Spelling" lol

              • 4. Re: updating service action attributes at run time
                system.out

                Thanks Kurt for the reply!

                Unfortunately, I wasn't able to run 4.2MR version, which comes with groovy quickstarts. Readme.txt refers to install directory which doesn't exist with this version!! Therefore a few variables are not set during ant run.
                I was able to run jbossesb-4.0A-bundle without any problem.

                Any suggestion/link for instruction?

                • 5. Re: updating service action attributes at run time
                  burrsutter

                  What particular step are you stuck on for the 4.2MR2 quickstarts? The readme.txt files are slightly out of sync with how these guys actually function. However, once you get confident working on 4.0, you learn actions, services and ant then figuring out 4.2 will be a piece of cake. The real trick is knowing how ant is working so you can tweak it to your location settings.

                  And do try to use the new ESB Server with 4.2 at
                  http://labs.jboss.com/jbossesb/downloads

                  jbossesb-server-4.2MR2.zip

                  Burr

                  • 6. Re: updating service action attributes at run time
                    system.out

                    I tried jbossesb-server-4.2MR2.zip, and in ant xml file there is a reference to install directory that doesn't exist.
                    Here is one example of readme.txt in /config folder:

                    Before Running:
                    ===============
                    Non Bundled:
                    1. Copy install/deployment.properties-example to install/deployment.properties and modify the
                    properties there to suit your environment

                    • .
                      2. Run 'ant deploy' in the "install" folder of the distribution. This
                      deploys the required SARs to your JBoss Application Server instance.
                      3. Make sure the JBoss Application server is running.

                      install folder doesn't exist !!

                      It should be a matter of updating the ant script to find the properties. I'll take a look again.
                    • 7. Re: updating service action attributes at run time
                      kurtstam

                      The esb-sever is preconfigured. No need to install anything. You're ready to go.

                      Only when you want to install the JBossESB to JBossAS you need to run deploy from the install directory.

                      --Kurt

                      • 8. Re: updating service action attributes at run time
                        system.out

                        What are the steps to run lets say helloworld in standalone mode?

                        • 9. Re: updating service action attributes at run time
                          system.out

                          Here is the result of ant run for 'helloworld':

                          D:\backup\demo\jbossesb-server-4.2MR2\samples\quickstarts\helloworld>ant run
                          Buildfile: build.xml

                          qslib-dependencies:

                          non-qslib-dependencies:

                          dependencies:

                          compile:
                          [javac] Compiling 3 source files to D:\backup\demo\jbossesb-server-4.2MR2\samples\quickstarts\helloworld\build\classes
                          [javac] D:\backup\demo\jbossesb-server-4.2MR2\samples\quickstarts\helloworld\src\org\jboss\soa\esb\samples\quickstart\helloworld\MyJMSListenerAction.java:23: package org.jboss.soa.esb.actions does
                          not exist
                          [javac] import org.jboss.soa.esb.actions.AbstractActionLifecycle;
                          [javac] ^
                          [javac] D:\backup\demo\jbossesb-server-4.2MR2\samples\quickstarts\helloworld\src\org\jboss\soa\esb\samples\quickstart\helloworld\MyJMSListenerAction.java:24: package org.jboss.soa.esb.helpers does
                          not exist
                          [javac] import org.jboss.soa.esb.helpers.ConfigTree;
                          [javac] ^
                          [javac] D:\backup\demo\jbossesb-server-4.2MR2\samples\quickstarts\helloworld\src\org\jboss\soa\esb\samples\quickstart\helloworld\MyJMSListenerAction.java:25: package org.jboss.soa.esb.message does
                          not exist
                          [javac] import org.jboss.soa.esb.message.Message;
                          [javac] ^
                          [javac] D:\backup\demo\jbossesb-server-4.2MR2\samples\quickstarts\helloworld\src\org\jboss\soa\esb\samples\quickstart\helloworld\MyJMSListenerAction.java:27: cannot find symbol
                          [javac] symbol: class AbstractActionLifecycle
                          [javac] public class MyJMSListenerAction extends AbstractActionLifecycle
                          [javac] ^
                          [javac] D:\backup\demo\jbossesb-server-4.2MR2\samples\quickstarts\helloworld\src\org\jboss\soa\esb\samples\quickstart\helloworld\MyJMSListenerAction.java:30: cannot find symbol
                          [javac] symbol : class ConfigTree

                          • 10. Re: updating service action attributes at run time
                            burrsutter

                            Look at the quickstart.properties file in the "conf" directory. See if the "org.jboss.esb.server.home" is pointing at the correct location of your AS+ESB or the ESB Server.

                            It sounds like you have a classpath issue.

                            • 11. Re: updating service action attributes at run time
                              system.out

                              Hi Burr,
                              quickstarts.properties doesn't exist in conf folder. I copied quickstarts.properties-example and defined the var. you mentioned:
                              #org.jboss.esb.server.home=${product.dir}/build/jbossesb-server-4.2.MR1
                              org.jboss.esb.server.home=D:/backup/demo/jbossesb-server-4.2MR2

                              The same error !

                              • 12. Re: updating service action attributes at run time
                                burrsutter

                                What are the subdirectories to the ESB Server MR2?
                                bin
                                client
                                docs
                                javadocs
                                lib
                                samples
                                server
                                tools

                                Also try "ant echoPaths" from that helloworld directory. This will tell you the various paths that are in use. You might use "ant echoPaths > paths.txt" on windows to then scroll through the information.

                                It appears that you have classpath issue therefore the classes won't compile in the helloworld example.

                                • 13. Re: updating service action attributes at run time
                                  burrsutter

                                  We didn't quite get the ant scripts right to work with the binary distro. Worst case scenario is use the SRC distro for this moment.

                                  Or manually tweak out the ant scripts so the paths are accurate.

                                  Burr