Page 1 of 1

c# exposure config for client app on different machine to server

Posted: Tue May 30, 2017 3:33 pm
by StevenQuickGS1
Hi guys,

I have a simple windows form application that reads some data out of jade via c# exposure, it works perfectly when run on the same machine as the server using config similar to the examples in the .net dev reference but I'm struggling to get it working when it's run on another machine in the same lan/network.

When run on a different machine to the server it hangs on opening the JoobContext without any error/exception. For the connection string and joob installation folder I've tried various options: UNC paths, mapped network drives and the DataSource=tcpip://[server]/[guid] connection string extension format with the same result.

I can see in sysinternals tcpview a connection is opened on the client machine and on the server but when debugging the code it never gets to the line after creating the JoobConext

I've read the .net dev reference but it's a bit light on practical cross machine example, couple of questions:
- Does the client require a local copy of the server /Bin64 for the joob section installation directory element OR can this point to the server via UNC or network share? I can't seem it to get it to work with the later.
- For the data source in the connection string should this work when using a mapped drive or do you have to use the ip/guid format for between machines?

Re: c# exposure config for client app on different machine to server

Posted: Tue May 30, 2017 4:22 pm
by BeeJay
I'd start by ruling out issues in your jade.ini file by attempting to open say the JadeMonitor app as a 'fat client' on the machine in question, to rule out any ini file settings as the cause of your failing connection. eg: In the jade.ini file on the server, do you have a TcpIp NetworkSpecification defined, as well as HPSM or JadeLocal NetworkSpecification? If you don't, that could explain why it works within the one machine but fails when going across machines as you have to use TcpIp network connectivity across host.

For example, suppose you have two network specifications defined on the server as per the following ini file settings:

Code: Select all

[JadeServer] NetworkSpecification1=JadeLocal,Enabled,MyJadeSystem NetworkSpecification2=TcpIp,Enabled,60001
The following specification would only work when running the application on the same machine as the DbServer, regardless of whether you're running the application using jade.exe or a running .net program and using a JoobContext,

Code: Select all

[JadeClient] ServerNodeSpecifications=JadeLocal,MyJadeSystem
This alternate specification will work both on the same machine as the DbServer and on another machine that has necessary network/firewall rules to allow the TcpIp connection to complete:

Code: Select all

[JadeClient] ServerNodeSpecifications=TcpIp,DNSResolvableNameOfMachineHostingDbServer,60001
If you don't have a DNSResolvableNameOfMachineHostingDbServer then you can specify the actual IP address, but this is less useful in disaster recovery scenarios - I've made up the following IP address in case that isn't obvious enough:

Code: Select all

[JadeClient] ServerNodeSpecifications=TcpIp,123.45.67.89,60001
Hope that helps.

Cheers,
BeeJay.