tags:

views:

62

answers:

0

I have an example program that works fine with one database and doesn't get a callback invocation on another database.

I noticed that in the working case SELECT CALLBACK FROM USER_CHANGE_NOTIFICATION_REGS returns a string that references the client IP address, which seems to intuitively match what the callback needs.

    (46, 4, 'net8://(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.252.1)(PORT=49406))?PR=0',
     0, 0, 1800, 'MH.CBDEMO')
    # 172.16.252.1 = client machine

In the busted case, the host string is filled in with the IP address of the database host.

  (271, 4, 'net8://(ADDRESS=(PROTOCOL=tcp)(HOST=138.72.249.167)(PORT=50966))?PR=0',
   0, 0, 1800, 'MH.CBDEMO')
  # 138.72.249.167 = database host

So, two questions:

  1. is it truly the case that the HOST= parm should refer to the OCI client?

  2. what's the best way to figure out where the HOST= parm is being incorrectly filled in?

environment:

  • client: Mac OSX, OCI, Python+cx_Oracle; database: 10.2.0.4.0
  • good server: linux on vmware, 10.2.0.4.0
  • failing server: linux RAC, 10.2.0.4.0