SAP Sybase IQ: SQLCODE=-1010000, ODBC 3 State=”HY000″: symbolic link to RAW device “already exists”

When you create an instance of IQ, you should use RAW devices for stability and performance. I recently created an instance and ran into the error SQLCODE=-1010000, ODBC 3 State=”HY000″ The file ‘/IQ/myiq/devices/IQ_MAIN/myiqmain001.iq’ already exists on AIX. The symbolic link /IQ/myiq/devices/IQ_MAIN/myiqmain001.iq was pointing to the RAW device /dev/myiqmain001. After many long hours on the phone with SAP, we found the solution, I’m rather embarrassed to say.

On AIX:

  • buffered (cooked) partitions are /dev/myiqmain001
  • unbuffered (REAL) RAW devices are /dev/rmyiqmain001

Note the letter “r” designating a RAW device.

When in doubt, you can use the file utility:
Block Special effectively means cooked partition:

file /dev/myiqmain001 
/dev/myiqmain001: block special (35/1)

Character Special means RAW device:

file /dev/rmyiqmain001
/dev/rmyiqmain001: character special (35/1)

Thanks to John Ting, Richard Weisbrod and Peter Bavin of SAP! It took a long time but we finally figured out what that something really really simple we’re overlooking was.

Feature Request 747716: for IQ to detect non-character raw device during db OR dbfile creation.

Share Button

Leave a Reply

Your email address will not be published. Required fields are marked *