Tymeac Start Up

If all you need is a simple RMI Server, then look at the non-activatable, Basic RMI Server and use stand-alone mode. You can pick up the rest as you need it.

Tymeac supports a user exit for start up as well as user functions. This is in order to provide additional functionality.

Tymeac reads system variables (Monitor interval, Notify Class, etc.) at start up from either the Tymeac Configuration Data (preferences or file) for a DBMS mode start up or from the TymeacUserVariables class for stand alone mode.

We supply several script files for starting the Tymeac Server. You must edit these for your environment.

Command line options:

Tymeac Start Up may be for

a non-activatable remote object,

an activatable remote object

or as an internal Server.


Command Line Options:
Tymeac Server accepts six, non case sensitive options with values from the command line.
    (-dir, -file, -edbsd, -port, -no, -s),

Plus one other required command line option with two values for Jini:
  (-config)

Although the options are not case sensitive, the directory and filename may be case sensitive depending on your operating system.

  1. Option -dir:  [When using a DBMS, see below]
    The File Directory where the Tymeac Configuration File resides.
    -dir followed by the directory.
         (e.g. -dir usr/local/  or -dir x:\)
    When not present, Tymeac uses the current directory.

By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked

  1. Option -file:  [When using a DBMS, see below]
    The File FileName of the Tymeac Configuration File.
    -file followed by the filename.
          (e.g. -file our_config.txt)
    When not present, Tymeac uses the default filename: "tymeac.xml".
     
  2. Option -edbsd   [When using a DBMS, see below]
    Embedded Data Base Shut Down
    This is for shutting down the database when it is embedded in Tymeac.
    -edbsd followed by your Class name for shut down.

  3. Option -port:  
    The TCP port on which to export the RMI remote object. See the Scripts document (TYMEAC_RMI_PORT) for a number you should use.
    This is not used for IIOP or for Jini.
        (e.g. -port 51000)
    When not present, Tymeac uses the anonymous port (either zero or not specified)

  4. Option -no
    This is to suppress printing of messages in Tymeac to the console, not logging to the log Table.
         (-no is short for -noverbose)
    The default (verbose) is to send any information/error message to System.out.println(). This is similar to using the Java interpreter without a console window, (javaw in some implementations). However, some fatal error messages still print, such as those from an SQL Error.

  5. Option -s
    This is for Stand-Alone mode. This option suppresses the [File] attempt to find the file name in the current directory (see Option 1, above.) This is useful when there is no file system or to eliminate an unnecessary I/O. Naturally, this option is mutually exclusive with options 1 and 2, above.
     
  6. Option -config [When using Jini] This changed in release 5.5 (was inside a configuration file before.)
    The configuration file for Jini.
    -config followed by two additional agruments:
      1. The location and name of the configuration file (E.G. config\tymeac-jini-ssl-server.config)
      2. The the component name: (com.tymeac.TymeacServer is the default)
    See the Jini setup for details.

DBMS mode is when the Queues and Functions, and optionally, Log and Statistics values are kept in a DBMS. The names of the DBMS Url, DataManager etc are kept in configuration data. The configuration data may be kept in preferences or a file.

The sequence of events for finding the configuration data is:

When a directory and/or filename is present, Tymeac tries to read the configuration file by:

  • Using the directory and filename or
  • Using the directory and default filename (Option 2) or
  • Using the current directory (Option 1) and filename.

    Any error is fatal.

When neither a directory nor filename is present, Tymeac looks for preference data (see Java API java.util.prefs.Preferences) in system node com/tymeac/base.

When Tymeac does not find preference data, Tymeac tries to read the default filename (Option 2) in the current directory.

When Tymeac does not find preference data and no default file exists in the current directory, then Tymeac sets Stand-Alone mode.

Tymeac uses the Stand-Alone mode when:

  • Option 5, (-s), is present or
  • When Tymeac cannot find preference data or the default configuration file in the current directory.

Simply:

  1. When the argument -s is present, Tymeac uses the Stand-Alone mode.
  2. When not using the DBMS arguments (Options 1 and 2) and
    when no preference data exists and
    when no configuration file exists in the current directory,
    Tymeac uses the Stand-Alone mode.

Tymeac Server writes fatal errors to the console, when possible to the log and aborts the Start Up.

The message you need is that the start up is successful.

"Tymeac Server initialized successfully, MilliTime="

MilliTime is the System time in milliseconds since 1970. MilliTime also appears on the shut down message and within all return messages for Asynchronous Requests. It is the way to identify this session of Tymeac.

Missing Classes or "something not found" usually means that the path to Tymeac Classes is not proper or a spelling or case sensitive error.

Note:  Tymeac starts various threads during start up to perform necessary functions. Each of these threads writes its own messages. Therefore, the order of these messages is unpredictable.


Tymeac Server requires access to classes for itself, the user Processing Application Classes and several common classes between the Server and Clients. We explain these in the directories structure.

Basically, three (four for Jini) directories are necessary:

  1. <home>/com/tymeac/base -- Contains Tymeac Server classes,
  2. <home>/com/tymeac/jini/base -- Contains Jini classes,
  3. <home>/com/tymeac/common -- Contains the Tymeac variables class, com.tymeac.common.TyVariable,
  4. <home>/com/tymeac/serveuser -- Contains the User Processing Application Classes.

You must address all security issues before starting the Tymeac Server.

A policy file is required:

-Djava.security.policy=<home>/Security/policy.all


Non-Activatable Remote Object

Basic RMI
Start the RMI Registry.
Then start Tymeac. The Class is com.tymeac.base.RMIServer.
See the /Scripts/RMIServer.[bat or sh] file.

RMI with Custom Socket Factories
Requires user written custom socket factories.

See the custom socket factory set up.

Start the RMI Registry.
Then start Tymeac with custom socket factories: com.tymeac.base.CSFServer.
See the /Scripts/CSFServer.[bat or sh] file.

Basic IIOP
Start the CosNaming server (tnameserv).
Then start Tymeac. The Class is com.tymeac.base.IIOPServer.
See the /Scripts/IIOPServer.[bat or sh] file.

IIOP (Portable Object Adapter)
Requires user written Adapter.

See the POA IIOP set up.

Start the ORB Daemon (orbd).
Then start Tymeac. The Demonstration Class is com.tymeac.demo.POAServer.
See the /Scripts/POAServer.[bat or sh] file.

Jini
The Jini Server requires a Jini environment.

  • An http server for codebase
  • A lookup service

Start the service as: com.tymeac.jini.base.JiniServer.
See the /Scripts/JiniServer.[bat or sh] file.


Activatable Remote Object

The use of the activation framework requires a user-written Class to define the remote object environment.

We supply a sample, general how-to of a Class that defines the Tymeac Server remote object and registers that remote object with the RMI Registry (see the Set Up instructions for the RMI Server details and Jini2.x set up for the Jini details.) 

Depending on your underlying operating system, there may not be a Java console window for the activated JVM. Therefore, printing of most messages, mentioned above, is unsupported. Errors log and throw a Throwable Exception instead.

 

 

© 1998 - 2008 Cooperative Software Systems, Inc.  All rights reserved.