Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Server connection fails with Ignition client
March 6, 2014
15:22, EET
Avatar
Steve
Member
Members
Forum Posts: 6
Member Since:
February 8, 2014
sp_UserOfflineSmall Offline

We are attempting to connect an Ignition (Inductive Automation) OPC UA client to our Prosys OPC UA server, and getting an error message indicating “Service CreateSessionRequest is not supported”. We checked with IA and they say it is an issue with the server that it does not provide the mandatory support for the CreateSession service. The connection works fine with the Prosys OPC UA client app.

Do you have any idea of what the problem is, or how to fix it?

Thanks.

March 6, 2014
15:39, EET
Avatar
Jouni Aro
Moderator
Moderators
Forum Posts: 1026
Member Since:
December 21, 2011
sp_UserOfflineSmall Offline

The connection URL is not correct.

I suppose the problem with Ignition is that you cannot define the full URL of the server – only the hostname and port. So you need to modify the server URL so that it has no ServerName, to get i.e.

opc.tcp://yourhost:52520

If you are using the SDK, you can use

server.setServerName("")

.

March 7, 2014
18:14, EET
Avatar
Kevin Herron
Member
Members
Forum Posts: 8
Member Since:
March 7, 2014
sp_UserOfflineSmall Offline

Hey there, I just thought I’d chime in.

Jouni is right about how the Ignition UA client configuration works – it does not ask the user for an endpoint URL. It simply issues a GetEndpointsRequest to the specified hostname and port, reporting that it’s accessing the server on the URL “opc.tcp://hostname:port”, and then from that point on uses the endpoint URLs returned in the EndpointDescriptions of the GetEndpointsResponse.

It seems that Steve’s server is returning endpoints using the same endpoint URL, without modifying (say, by appending something to the URL if that’s absolutely necessary for the server to recognize it) the URL in anyway or simply returning no endpoints.

So the Ignition client goes on to open a secure channel and issue a CreateSession request, using one of the endpoints it assumes is valid because it was returned in a GetEndpointsResponse, at which point the “Service CreateSessionRequest is not supported” error occurs.

March 7, 2014
23:25, EET
Avatar
Steve
Member
Members
Forum Posts: 6
Member Since:
February 8, 2014
sp_UserOfflineSmall Offline

I’m not sure how to implement what Kevin is suggesting with the SDK, but the Ignition connection does work if I set ServerName empty.

March 11, 2014
16:19, EET
Avatar
Jouni Aro
Moderator
Moderators
Forum Posts: 1026
Member Since:
December 21, 2011
sp_UserOfflineSmall Offline

Thanks Kevin for joining the discussion!

Yes the problem is that, if endpoints are requested from opc.tcp://hostname:52520, for example, the Java stack will not return endpoints for the server at opc.tcp://hostname:52520/ServerName, since it is regarding those to be different server instances. opc.tcp://hostname:52520 always contains a DiscoveryServer, which can be discovered applications. So if the Ignition Client cannot use full URLs, it should be prepared to do a FindServers request on the server, when CreateSession fails.

Currently, I think the only working solution is to define the server without the ServerName.

March 11, 2014
20:32, EET
Avatar
Kevin Herron
Member
Members
Forum Posts: 8
Member Since:
March 7, 2014
sp_UserOfflineSmall Offline

Jouni Aro said
opc.tcp://hostname:52520 always contains a DiscoveryServer, which can be discovered applications.

Ah, that’s exactly what I suspected… dang. I’ll eventually change Ignition’s UA client stuff to allow for a URL. That’s too bad.

This is the first server I’ve encountered where this has been a problem! and that includes Kepware, Beckhoff, the sample server, and all the servers at the last 4 years of interop! Everybody else runs their discovery server on a more specific endpoint URL, not just at the base, and connecting to the base endpoint URL works.

March 12, 2014
12:03, EET
Avatar
Jouni Aro
Moderator
Moderators
Forum Posts: 1026
Member Since:
December 21, 2011
sp_UserOfflineSmall Offline

Yes, the Java stack is a bit different fellow :)

March 12, 2014
13:45, EET
Avatar
Kevin Herron
Member
Members
Forum Posts: 8
Member Since:
March 7, 2014
sp_UserOfflineSmall Offline

Jouni Aro said

Yes, the Java stack is a bit different fellow :)

Is it the Java stack or the Prosys SDK?

I have both my own SDK and a server (not Ignition) that are built on the provided UA Java stack and neither of them have this issue. You must be intentionally starting a server implementing the discovery service set on the base endpoint URL, yes?

March 12, 2014
14:16, EET
Avatar
Jouni Aro
Moderator
Moderators
Forum Posts: 1026
Member Since:
December 21, 2011
sp_UserOfflineSmall Offline

Yes the SDK is implementing the DiscoveryServer, if the server is initialised with a ServerName. But the Java stack is making a difference between servers according to the URL. There may be a difference between the new 1.02 stack and the old 1.01 stack. The current official SDK is still using the old 1.01 stack.

Are you using the old stack yourself?

March 12, 2014
14:30, EET
Avatar
Kevin Herron
Member
Members
Forum Posts: 8
Member Since:
March 7, 2014
sp_UserOfflineSmall Offline

I’m using the 1.02 stack, v334.9.

However… I just went and took another look, and it turns out I am indeed just binding to the base endpoint URL, which is presumably why I’ve never had any problems connecting Ignition’s UA client to this server. Embarassed

March 12, 2014
15:31, EET
Avatar
Jouni Aro
Moderator
Moderators
Forum Posts: 1026
Member Since:
December 21, 2011
sp_UserOfflineSmall Offline

Yes, that’s the way to avoid this issue, but unfortunately, our samples have always been using a longer URL, so you may encounter other servers suffering from this issue as well (and I believe this issue has popped up previously as well).

Forum Timezone: Europe/Helsinki

Most Users Ever Online: 1919

Currently Online:
9 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Heikki Tahvanainen: 402

hbrackel: 144

rocket science: 88

pramanj: 86

Francesco Zambon: 83

Ibrahim: 78

Sabari: 62

kapsl: 57

gjevremovic: 49

Xavier: 43

Member Stats:

Guest Posters: 0

Members: 738

Moderators: 7

Admins: 1

Forum Stats:

Groups: 3

Forums: 15

Topics: 1524

Posts: 6451

Newest Members:

jonathonmcintyre, fannielima, kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger

Moderators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0

Administrators: admin: 1