General Discussion & Announcements

 View Only

Using Java API with Rocket D3 10.4

  • 1.  Using Java API with Rocket D3 10.4

    PARTNER
    Posted 03-14-2024 10:05

    As the result of a post by Bryan Buchanan I have started looking at using the Java API to access Rocket D3 10.4 on AlmaLinux 8.9.

    I have downloaded the file MVSPJavaAPI.zip and successfully compiled and run MVSPJavaAPI/samples/mvspTest.java. When I used this program the connection was instant and all other accesses were also instant. 

    I then attempted to create my own simple Java program based on what I could see in mvspTest.java. When I ran it I found that there was a 2 to 3 second delay when making the connection. The data retrieval part of the program worked and was instant. At the same time the following error message lines appear in /var/log/messages:

    Mar 10 19:55:06 Alma8 systemd[1]: D3MVSPpick0@0-127.0.0.1:9000-127.0.0.1:54186.service: Main process exited, code=exited, status=1/FAILURE
    Mar 10 19:55:06 Alma8 systemd[1]: D3MVSPpick0@0-127.0.0.1:9000-127.0.0.1:54186.service: Failed with result 'exit-code'.

    These message lines did not occur when I used mvspTest.java.


    Can anyone give a clue why I am seeing the difference in behaviour? My code is as follows:

    MvspConsole.java

    import com.rocketsoftware.mvapi.*;
    //import com.rocketsoftware.mvapi.ResultSet.*;
    //import com.rocketsoftware.mvapi.exceptions.*;
    import java.util.Properties;

    class MvspConsole {
      static MVConnection mvspHandle;

      public static void main(String[] args) {
        System.out.println("Started...");

        Properties props = new Properties();
        props.setProperty("username", "jrcar");
        props.setProperty("password", "0xygen16");

        String url = "jdbc:mv:D3:localhost:9000";
        mvspConnect(url, props);

        mvspLogto("mvdemo", "");

        mvspRead("customers", "12");

        mvspClose();
      }

      static void mvspConnect(String url, Properties props){
        System.out.println("Connecting...");
        try {
            mvspHandle = new MVConnection(url, props);
        }
        catch (Exception ex){
          System.out.println("new MVConnection: Unexpected exception: " + ex.toString());
          System.out.println(" : " + ex.getMessage());
          System.out.println("Cause: " + ex.getCause());
          return;


        }
        System.out.println("Connected");
      }

      static void mvspClose(){
        try {
          mvspHandle.close();
        } catch (Exception ex) {
          System.out.println("Couldn't close mvcHandle");
        }
      }

      static void mvspLogto(String account, String pwd){
        try {
          mvspHandle.logTo(account, pwd);
          System.out.println("Logto: " + account);
        } catch (Exception ex) {
          System.out.println("Exception: " + ex.toString());
          System.out.println(" : " + ex.getMessage());
        }
      }

      static void mvspRead(String fileName, String id){
        try {
          String item = mvspHandle.fileRead(fileName, id);
          item = mvspHandle.swap(item, MVConstants.AM, "|");
          System.out.println("Read item ...");
          System.out.println(item);
        } catch (Exception ex) {
          System.out.println("Exception: " + ex.toString());
          System.out.println(" : " + ex.getMessage());
        }
      }
    }



    ------------------------------
    James Carthew
    Application Specialist
    LRS Health Pty Ltd
    Heidelberg VIC AU
    ------------------------------