25.01.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!