2.10 JSM起動クラス

LANSA Integrator

2.10 JSM起動クラス


JSMが開始すると、内部の起動クラスが実行されます。このクラスは、すべてのJSMサービス・クラスをロードしてXML変換を実行し、できるだけ多くのApache Xalanクラスをロードします。

ユーザー定義の起動クラスは、manager.propertiesファイルの「startup.class」プロパティで指定できます。

 

startup.class=com.acme.MyStartup

 

ユーザー定義の起動クラスの場合、実行可能インターフェースを実装する必要があります。JSMはこのロードされたクラスを実行可能オブジェクトにキャストして、実行メソッドを実行します。これは、メイン・メソッドで行われるため、専用の追加スレッドは作成されません。

内部の起動クラスとユーザー定義の起動クラスは、JSMが開始してクライアントとコンソールの接続を受け入れる前に実行されます。

例 1

 

package com.acme ;

 

public final class MyStartup implements Runnable

{

   public void run ()

   {

        try

        {

 

            /*   コードをここに記載   */

 

        }

        catch ( Throwable t )

        {

             t.printStackTrace () ;

        }

   }

}

 

例 2

 

package com.acme ;

 

public final class MyStartup implements Runnable

{

    private int m_sleepTime = 0 ;

 

    public MyStartup ()

    {

        /*

            JSMManagerはゼロ引数コンストラクタを使用する

        */

 

        int seconds = 60 * 20 ; // Every 20 minutes

 

        Thread thread = new Thread ( new MyStartup ( seconds ) ) ;

 

        thread.start () ;

    }

 

    public MyStartup ( int seconds )

    {

        /*

            スリープ時間を指定する

        */

 

        if ( seconds <= 0 )

        {

            seconds = 0 ;

        }

 

        m_sleepTime = seconds * 1000 ;

    }

 

    public void run ()

    {

 

        if ( m_sleepTime == 0 )

        {

            /*

                JSMManager呼び出し

            */

 

            System.out.println ( "JSM warmup call" ) ;

 

            try

            {

                warmup () ;

            }

            catch ( Throwable t )

            {

                t.printStackTrace () ;

            }

 

            return ;

        }

 

        /*

            スリープ時間を指定したMyStartup呼び出し

        */

 

        while ( true )

        {

            try

            {

                Thread.sleep ( m_sleepTime ) ;

 

                System.out.println ( "MyStartup repeat warmup call" ) ;

 

                warmup () ;

            }

            catch ( Throwable t )

            {

                t.printStackTrace () ;

            }

        }

 

    }

 

    private final void warmup () throws Exception

    {

        System.out.println ( "MyStartup warmup" ) ;

 

        /*   コードをここに記載   */

 

    }

}