Using the Java Gateway in a Production - InterSystems Documentation
Using the Java Gateway in a Production - InterSystems Documentation
Using the Java Gateway in a Production - InterSystems Documentation
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Creat<strong>in</strong>g a Bus<strong>in</strong>ess Operation<br />
2.4 Creat<strong>in</strong>g a Bus<strong>in</strong>ess Operation<br />
An abstract bus<strong>in</strong>ess operation is available as a base for build<strong>in</strong>g <strong>Java</strong> <strong>Gateway</strong> oriented bus<strong>in</strong>ess operations for Ensemble<br />
productions. You can simply subclass <strong>the</strong> abstract class EnsLib.<strong>Java</strong><strong>Gateway</strong>.AbstractOperation and implement <strong>the</strong> appropriate<br />
message handlers.<br />
Call <strong>the</strong> GetConnection method to verify <strong>the</strong> connection and always access <strong>the</strong> <strong>Java</strong> <strong>Gateway</strong> connection object via <strong>the</strong><br />
gateway connection object returned by <strong>the</strong> GetConnection method. For example:<br />
Set tSC = ..GetConnection(.t<strong>Java</strong><strong>Gateway</strong>)<br />
If $$$ISOK(tSC)<br />
{<br />
// Now, start us<strong>in</strong>g <strong>the</strong> t<strong>Java</strong><strong>Gateway</strong> <strong>in</strong>stance ...<br />
}<br />
This method returns a private gateway connection object to be used with <strong>the</strong> proxy classes.<br />
You can configure <strong>the</strong> <strong>Java</strong> <strong>Gateway</strong> IP address and port <strong>in</strong> <strong>the</strong> bus<strong>in</strong>ess operation sett<strong>in</strong>gs when you add <strong>the</strong> bus<strong>in</strong>ess<br />
operation to <strong>the</strong> production. Note that <strong>the</strong> connection to <strong>the</strong> <strong>Java</strong> <strong>Gateway</strong> <strong>in</strong>stance is made dur<strong>in</strong>g OnInit and closed <strong>in</strong><br />
OnTearDown. You must override <strong>the</strong>se methods <strong>in</strong> <strong>the</strong> bus<strong>in</strong>ess operation class to implement your own setup and tear<br />
down procedures.<br />
See <strong>the</strong> EnsLib.<strong>Java</strong><strong>Gateway</strong>.AbstractOperation entry <strong>in</strong> <strong>the</strong> Class Reference for details on <strong>the</strong>se methods and also <strong>the</strong><br />
AdditionalPaths, Address, ConnectTimeout, and Port properties.<br />
2.5 Call<strong>in</strong>g API Methods<br />
In addition to us<strong>in</strong>g connect, disconnect, and stop from <strong>the</strong> bus<strong>in</strong>ess service, <strong>the</strong> follow<strong>in</strong>g methods are also available <strong>in</strong><br />
<strong>the</strong> EnsLib.<strong>Java</strong><strong>Gateway</strong>.<strong>Java</strong><strong>Gateway</strong> class. You can use <strong>the</strong>m when <strong>the</strong> bus<strong>in</strong>ess service model is not appropriate for your<br />
situation:<br />
The EnsLib.<strong>Java</strong><strong>Gateway</strong>.<strong>Java</strong><strong>Gateway</strong> class provides <strong>the</strong> follow<strong>in</strong>g types of methods:<br />
• API methods that let you %Connect to <strong>the</strong> <strong>Java</strong> <strong>Gateway</strong> server, %Disconnect from it, and %Shutdown <strong>the</strong> <strong>Java</strong><br />
<strong>Gateway</strong> server.<br />
• The %Import method, which imports <strong>Java</strong> classes or packages from <strong>the</strong> JVM and generates all <strong>the</strong> necessary proxy<br />
classes for <strong>the</strong> Ensemble side.<br />
• The %ExpressImport method, which comb<strong>in</strong>es calls to %Connect, %Import, and %Disconnect.<br />
• The utility methods %ClassForName and %GetAllClasses.<br />
2.5.1 %Connect Method<br />
Method %Connect(host As %Str<strong>in</strong>g,<br />
port As %Integer,<br />
namespace As %Str<strong>in</strong>g,<br />
timeout As %Numeric = 5,<br />
additionalClassPaths As %ListOfDataTypes = "")<br />
As %Status [ F<strong>in</strong>al ]<br />
The %Connect method establishes a connection with <strong>the</strong> <strong>Java</strong> <strong>Gateway</strong> eng<strong>in</strong>e. It accepts <strong>the</strong> follow<strong>in</strong>g arguments:<br />
Argument<br />
host<br />
Description<br />
Identifies <strong>the</strong> mach<strong>in</strong>e on which <strong>the</strong> <strong>Java</strong> <strong>Gateway</strong> server is runn<strong>in</strong>g.<br />
<strong>Us<strong>in</strong>g</strong> <strong>the</strong> <strong>Java</strong> <strong>Gateway</strong> 13