Any way around regnerating artifacts for different libs?

Hi All-

I am wondering if anyone has figured out a solution to not having to regenerate idls, xmm files, etc when you need these artifacts for different libraries. We have 5 environments to go through before mainframe code hits production. We have brokers and web applications for each of these environments. It would be nice to not have to regenerate all of the web components at every library change.

Even if you use an alias library name the original library name is still embedded in the generated artifacts. Is there a way to use a dynamic library variable and load it from a properties file?

Any solutions or best practices suggestions?


all the RPC clients support overriding libraries, brokers, etc at run time. What client are you using?

Hi Doug-

I am making a Natural program available as a web service and calling it from the SAG servlet: xmlrt.

Here is what I am doing and maybe there is a better way. I generate an idl from Natural library ABC. In the Exx workbench I change the library name to DATAPROC and move ABC to the alias lib name. I then create soap mappings in all programs and in the mapping parameters I put urn:com-softwareag-entirex-rpc:ABC as the Defaul Namespace for payload Root element (m) prefix. I save the xmm and then generate a wsdl.
I then import the entirex.war into Rational Application Developer, drop in the xmm file, wsdl, tweak the xml-init with broker parms and then create a test web service client. I start the RPC server and make sure that it logs onto library ABC (to avoid Nat 82 errors). All works fine.

Now, my Natural code gets staged to library DEF. I have to repeat the whole process and replace ABC with DEF and add different broker parms.

Is there any way that one can generate the idl, xmm, and wsdl once so that the library isn’t even used and have the broker and the RPC server tied to the library where the Natural code resides? I’ve tried playing around and I haven’t figured it out yet.

Also, does the soap parameter (urn:com-softwareag-entirex-rpc:ABC) need to have the library name in it?


I’m not sure if I’m answering what you are asking…

Per the documentation (eg file:///C:/Program%20Files/Software%20AG/EntireX/Docu/devkit/rpc_xml/advanced.htm#Changing_the_Library_Name), you can pass the library name as an HTTP header parameter.

Or, probably simpler, you can update the xml-init file with the updated library/broker names. See file:///C:/Program%20Files/Software%20AG/EntireX/Docu/admin/windows/setup/xmlservl.htm#EntireX_XML_Init_File

Thanks Douglas. I’m not sure why I thought everything had to be so tightly coupled with the library name. I regnerated artifacts with a dynamic library name and no alias and all works fine.

We can close this thread.