I run into an issue connecting to an OPC Server through Java with openScada, Utgard, and Jinterop.
I was previously using Matrikon's OPC Server (everything worked perfectly) and attempted to switch to Kepware Server Ex. The Kepware demo ran out and I didn't want to purchase it - so I decided to switch back to Matrikon's OPC Server. I completely uninstalled Kepware, and without changing any code I ran into "org.openscada.opc.lib.common.NotConnectedException" when running my program.
I have found a "workaround" for this issue. But it hinders the original functionality of the program: Originally a AutoReconnectController was used:
  public void createOPCConnection( String host, String domain, String progID, String clsid, List<String>tagNames) throws OPCException {   
  this.conn = new ConnectionInformation();
    conn.setHost(this.host);
    conn.setDomain(this.domain);
    conn.setUser(this.user);
    conn.setPassword(this.pass);
    conn.setProgId(this.progID);
    conn.setClsid("F8582CF2-88FB-11D0-B850-00C0F0104305");
    server = new Server(conn, Executors.newSingleThreadScheduledExecutor());        
    AutoReconnectController autoReconnectController = new AutoReconnectController ( server );
    // disable GC for COM objects to prevent the socket from being closed
    JISystem.setJavaCoClassAutoCollection(false);
    try {
        // connect to server
        autoReconnectController.connect();
        createOPCGroup(tagNames);
    } catch (IllegalArgumentException e) {
        throw new OPCException(e.getMessage());
    }
When testing the server state using
  server.getServerState() 
I get a value of Null. So it's obvious the server wasn't connecting so I tried removing the AutoReconnectController.
When deleting AutoReconnectController, as such:
  server = new Server(conn, Executors.newSingleThreadScheduledExecutor());
   try{
        server.connect();
        createOPCGroup(tagNames);
    }catch (Exception e){
    e.printStackTrace(System.out);
    }
The NotConnectedException does not trigger, and the program runs successfully. However, I need the reconnect functionality. Does anyone have any thoughts as to what might be going on here?
Since no code was changed I figured it was DCOM settings or something of the like; but again nothing has changed since Matrikon was changed to Kepware, and back again.