the ServiceName in ConnectString will get "transformed" to SID, when you assign sess2.ConnectString := sess1.ConnectString, so if you have a sess1 with server:1521:sn=sname, sess2 will try to connect to server:1521:sid=sname.

Problem seems to be in TDirectServerInfo.GetServerInfo, that does not qualify if sid or service name is used.
BTW: Critical update 9.1.4 is out, so I wonder why the announcment is missing?
Best regards,
Andre