IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.



#Automation


#Applicationintegration
#webMethods
#Integration
 View Only
  • 1.  Custom adapter shutdown if connection problem to resource

    Posted 05/06/02 07:00 AM

    Hi

    I would like to shutdown my custom adapter when there is a connection problem with the resource application. The adapter monitor then should try to restart the adapter automatically after some time. I guess this is the way the commercial adapters work, too.

    Which method do I have to call in my code to shutdown my adapter (which implements the Adapter interface)? Or should I throw an exception?

    I tried to find references in the list archives and the “Adapter Development Kit User Guide”. Also the following code does (of course) not work:

    public void adapterStartup() throws AdapterException
    //other code ...
    if (false == adapterAccess.isConnectTest()) {
    if (!resourcePing()) {	//resourcePing() pings the resource
    

    and returns false, if problem
    adapterShutdown();
    }
    }
    trace(“-adapterStartup”);
    } //END public void adapterStartup() throws AdapterException

    Thanks … Rick


    #Integration-Server-and-ESB
    #Adapters-and-E-Standards
    #webMethods


  • 2.  RE: Custom adapter shutdown if connection problem to resource

    Posted 05/06/02 07:02 PM

    Use this piece of code:
    AdapterException e = new AdapterException(…);
    e.setFatal(true);
    throw e;

    Tilman


    #webMethods
    #Adapters-and-E-Standards
    #Integration-Server-and-ESB


  • 3.  RE: Custom adapter shutdown if connection problem to resource

    Posted 05/08/02 04:15 AM

    Thank you for the answer. This code works fine in adapterStartup().
    If, however, a fatal AdapterException from within scriptInvoke in an Operation Template is thrown, nothing happens (i.e. I only get an error and errorNotify doument). But I would like to have the adapter to shutdown also in these situations.

    To simulate this, I have the following code:
    a) in OperationTemplate.scriptInvoke(…):

    MyAdapter adapter = (MyAdapter).access.getAdapter();
    adapter.checkConnectionProblem(new Exception(“foo”));

    b) in MyAdapter.adapterStartup(…):

    if (false == adapterAccess.isConnectTest()) resourcePing();

    c) in MyAdapter:
    public void resourcePing() throws AdapterException{
    try {
    double ran = Math.random();
    if (ran < 0.5d) throw new Exception(Double.toString(ran));
    }
    catch (Exception e) {
    String text = "resourcePing(): Cannot connect to resource: " + e.toString();
    AdapterException ae = new AdapterException(text);
    ae.setFatal(true);
    throw ae;
    }

    d) in MyAdapter:
    public void checkConnectionProblem(Exception anException) throws AdapterException {
    //parse Exception and if needed do ping
    resourcePing();
    }

    So: if I get a fatal AdapterExeption in c) when called from b) the adapter shutsdown as desired. However, if a fatal AdapterException is thrown in c) when called from a) via d) then the adapter will not shutdown.

    Any idea how I can bring the adapter down from within a OperationTemplate.scriptInvoke()?

    Thanks in advance … Rick

    PS: I want to use d) to first parse the Exception.toString() to find out, whether it probably has been a connection problem.


    #webMethods
    #Integration-Server-and-ESB
    #Adapters-and-E-Standards


  • 4.  RE: Custom adapter shutdown if connection problem to resource

    Posted 05/21/02 01:25 PM

    Ricardo,
    your code looks good. What version of the ADK are you using? Any patches installed? Finally, is your adapter multi-threaded by any chance? There have been a few issues with fatal exceptions that got addressed over time.

    Tilman


    #webMethods
    #Adapters-and-E-Standards
    #Integration-Server-and-ESB