Issue accessing objects from Linux client on different Win client


Apr 2, 2024
Reaction score
Customer has Linux based client, with legacy filespaces and objects
I create Win-based client in C# language. It works as expected with filespaces and objects created under other win clients.
It also sees filespace from linux-based node referenced by access rule. But it does not see objects. There is difference in hl/ll delimiter, linux client has / while win client has \
(Another win client I have is api's sample console client, but it does not implement cross-platform feature as I guess)

As API documentation says, I add 3 params during login (method dsmInitEx):
dirDelimiter = /
bCrossPlatform = true
useUnicode = false

Login executes, no errors or messages
Output does not change
Moreover, output of method dsmQuerySessInfo shows me delimiter as same \ while I am sending /, so failed to change
Didn't find way to check other params (bCrossPlatform, useUnicode)

TSM server version 6.3.4 (API version is 6.2.3)

1) Is there a way to check which bCrossPlatform value is in current session?
2) dsmQuerySessInfo should show actual session delimiter, correct? What could be reason that I send new delimiter in dsmInitEx but it not changing according to this report? Is there any other way to check dilimiter?
3) Any other suggestions?

Thank you

The Tivoli Storage Manager API supports cross-platform interoperability. Applications on a UNIX or Linux system can operate on file spaces and objects that are backed up from a Windows system. Similarly, a Windows system can operate on a UNIX or Linux system.
  1. Establish a consistent naming convention. Select a character for the dir delimiter, such as / or \. Place this character in front of the file space name, the high-level qualifier, and the low-level qualifier.
  2. When you call dsmInitEx, set the value of the dirDelimiter field to the character that you selected and set bCrossPlatform to bTrue.
  3. Set the useUnicode flag to bFalse when you use the Tivoli Storage Manager interface. Unicode file names and non-Unicode file names do not interoperate.

The directory delimiter that is prefixed on the file space, high-level or low-level names. You need to specify this only if the application overrides the system defaults. In a UNIX or Linux environment, this is /. In a Windows environment, this is\.
A Boolean flag that indicates if Unicode is enabled.
A Boolean flag that indicates if cross-platform is enabled.

So I do it, but dirDelimiter does not change according dsmQuerySessInfo answer
Ok, the issue was in stVersion param
Tricky that documentation says minimum about it