Subject | Re: [IBO] IBO Admin SQL Code -923 "Connection Rejected by Remote Interface" |
---|---|
Author | Helen Borrie |
Post date | 2008-02-21T09:16:58Z |
At 05:46 PM 21/02/2008, you wrote:
My suspicion is that you might be seeing the "connection" in the wrong way. As I mentioned before, IBO itself is a *data access* interface. Data access connects to databases.
The Services API is not a data access interface. It is a mish-mash of function calls and macros that invoke code embedded in the server that reproduces the same behaviour as the corresponding command-line utilities.
So what you *don't* do is assume that your service component is going to connect to a database. It doesn't. It passes requests via a Service Parameter Block (SPB) and does not pass a Database Parameter Block (DPB) at all. It is the server engine *itself* that makes the connection to a database. It gets the information from the SPB, which is wrapped by Service component itself. Do you see the difference?
The IBX service components "borrow" attributes from the IBX DPB component (I think the class is TIBDatabase, from memory). What happened with the IBOAdmin components (besides cleaning up some really ratty code) was that these components can borrow attributes from the TIB_Connection class, which an altogether less rough-and-ready implementation than was done in the original hybridised IBX/VCL implementation. Passing a service request is *not* the same thing as passing a database access request!!
If you haven't done so already, pick up my two demo apps from the Files area. I did one using the IBX components and a similar one using the IBOAdmin. Assign values to the Params property of the service component. It's really dumb and simple. Really, it's not imperative that you understand in what ways an SPB is different to a DPB, because the components take care of that. But you do need to understand *that* a service component doesn't use a DPB.
So just *run* the IBOAdmin demo project and see whether it fails! If it does fail, get as much info as you can about the failure so that troubleshooting and, if necessary, updating the components becomes possible...
Helen
>>Not that I know of. But the IB 6 vs Fb 1.5 issue was, as I recall, to do with the version string in the client library. There's nothing I have heard of that would require a distinction to be made between Fb 1.5 and Fb 2.
>> You tell us! Did you pass the sysdba or db owner's user credentials
>as username and password? + answers to other questions we might ask.
> Like did you use the localhost as your server? 'cos afaik, you can't
>on Vista, it has to be the node name of the host machine...etc...
>>
>> Helen
>>
>
>In my code, I'm copying the exact credentials from a TIB_Connection
>that is already connected to the same database. user_name=SYSDBA,
>password=masterkey, protocol cpTCP_IP. Yes, I am using localhost.
>However, I'm running FB 2.03 which does allow a localhost connection
>on Vista. You're right, earlier versions of 2 didn't allow the local
>connection.
>
>The code that I downloaded from the files area only references two
>server types, IB 6 and FB 1.5. Is there an update for 2.x?
My suspicion is that you might be seeing the "connection" in the wrong way. As I mentioned before, IBO itself is a *data access* interface. Data access connects to databases.
The Services API is not a data access interface. It is a mish-mash of function calls and macros that invoke code embedded in the server that reproduces the same behaviour as the corresponding command-line utilities.
So what you *don't* do is assume that your service component is going to connect to a database. It doesn't. It passes requests via a Service Parameter Block (SPB) and does not pass a Database Parameter Block (DPB) at all. It is the server engine *itself* that makes the connection to a database. It gets the information from the SPB, which is wrapped by Service component itself. Do you see the difference?
The IBX service components "borrow" attributes from the IBX DPB component (I think the class is TIBDatabase, from memory). What happened with the IBOAdmin components (besides cleaning up some really ratty code) was that these components can borrow attributes from the TIB_Connection class, which an altogether less rough-and-ready implementation than was done in the original hybridised IBX/VCL implementation. Passing a service request is *not* the same thing as passing a database access request!!
If you haven't done so already, pick up my two demo apps from the Files area. I did one using the IBX components and a similar one using the IBOAdmin. Assign values to the Params property of the service component. It's really dumb and simple. Really, it's not imperative that you understand in what ways an SPB is different to a DPB, because the components take care of that. But you do need to understand *that* a service component doesn't use a DPB.
So just *run* the IBOAdmin demo project and see whether it fails! If it does fail, get as much info as you can about the failure so that troubleshooting and, if necessary, updating the components becomes possible...
Helen