Results 1 to 6 of 6
  1. #1
    Join Date
    Jan 2004
    Posts
    71

    Unanswered: cant connect via shared memory, only soctcp works

    Hi all. Our former dba has our informix databases setup so that everything (from a user perspective) connects via soctcp. I tried to set up an alias and then a line in sqlhosts as well as the appropriate connections setting in onconfig so that I could run batch jobs on the same box that houses the database via ipcshm but the apps keep failing with a message that indicates they cannot connect to the database.

    I can export the server name to a local session and use dbaccess to connect via ipcshm with no problems. I did notice that I cannot use isql in this same manner and get the same type of 'cannot connect...' failure. Anyone shed some light on this?

    I am running on IDS 9.40 and the OS is AIX 5.2.
    -thanks

  2. #2
    Join Date
    Mar 2004
    Location
    Netherlands
    Posts
    183
    Please specify the full version number. If it is 9.40.FCx then it is a 64-bit version. In that case IDS is unsing 64-bit memory addresses. Tools like isql (and also 4gl programs) are normally 32-bit. So it is not possible to connect to the 64-bit memory with a 32-bit address.

    I don't know if this is true for your situation.

    Greetings,

    Rob Prop

  3. #3
    Join Date
    Jan 2004
    Posts
    71

    <!>

    Thats exactly whats happening I bet! I am using the AIX 64-bit version. That sort of stinks...I guess I will need to recompile the 32 bit apps I want to run as 64 bit apps.

    Boy, that really really stinks! I bet our programmers dont even know how to throw the 64 bit switch on their compiles so I guess I better do some reading. Thanks RobP!

  4. #4
    Join Date
    Dec 2003
    Location
    North America
    Posts
    146
    where is your INFORMIXSERVER env variable pointing ?

    Is it pointing to servername_shm or servername_tcp?

  5. #5
    Join Date
    Jan 2004
    Posts
    71
    I have been setting that variable to point at the server name associated with ipcshm in the sqlhosts file, which is relfected in the connection type parm in onconfig.

    I am pretty sure I have been doing it right and dbaccess will work and run in shared memory if I export the server name. Its just my old 32-bit 4GL apps and ISQL that I am running into this with. I diescovered this week that while we are running the 64 bit version of Informix (*FC2) we are running the *UC version of the 4GL toolset which by its very generic and universal nature is 32 bit.

    The admin before me was a doofus who liked to keep everything related to 'database management' secret and our programmers were never even aware of this 32 bit toolset thing until now. Its really a shame, because his secretive nature has left all our programmers hating Informix because they feel like they do not know enough about how things work to make them work better/take advantage of its strengths. I was all evil-empire myself (microsoft type) until I inherited these Informix servers, but I have come to respect its speed and ability to scale vertically instead of the usual horizontal growth I usually have to deal with in the MS world.

    I am curious if I can still use the same 4gl toolset I have been using and maybe flip a switch at the C compiler end? As I understand it (which is not very well or much) the 4GL tools pass the object to the C compiler which actually creates the executable? Feel free to correct me if I am wrong, this is the understanding of things that has been passed down from our former DBA to our dev staff and now me.

    Thanks for the input.

  6. #6
    Join Date
    Mar 2004
    Location
    Netherlands
    Posts
    183
    Hi WiccaChic,

    I think 4GL on most platforms is still 32-bit, so just recompiling it is not an option. What we always suggest is enabling tcp/ip connections for the local 4gl. This will make the communication a little bit slower, but this is more than enough compensated with the 64-bit database technology.

    I don't know if you know how to set this up but it is quite easy (just like everything else in the IT, if you know it).

    Put extra extry in your /etc/services file, for example:

    ixport 1531/tcp

    Put extra line in sqlhosts file

    dbservertcp onsoctcp <hostname> ixport

    Put extra line / adjust line in ONCONFIG:

    DBSERVERALIASES dbservertcp
    NETTYPE soctcp,1,,NET



    This is just a set-up, if you need more advise please post or e-mail your onconfig and sqlhosts file.

    Hope this helps,

    Rob Prop

    By the way: Nice to know that MS-loving people appreciate the Informix technology

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •