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:
is it truly the case that the HOST= parm should refer to the OCI client?
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