@Stephen
Sokrates, April 25, 2012 - 2:07 pm UTC
April 25, 2012 - 2:52 pm UTC
excellent, that looks very nice, thanks for the reference!
How much usage and value is out there
Dana, April 25, 2012 - 4:25 pm UTC
I'm curious how many organizations are using services, and how extensively. To me it seems to be an ideal method for tuning, diagnostics, accounting, and costing in addition to the RAC benefits. But I seldom see or hear much about it. Any experiences to share out there?
April 25, 2012 - 5:34 pm UTC
almost everyone that uses RAC uses services.
As resource management becomes more and more important (consolidation sort of demands you start using it) it'll become more mandatory.
Check out that lengthly paper Sokrates pointed to - the benefits are there.
No need to configure listener.ora files anymore either - that is nice.
Looking for more...
Dana, April 25, 2012 - 7:03 pm UTC
I don't disagree. I am looking at services more as a means of creating "virtual" databases in any instance, not just for RAC. For instance, as the paper I think mentioned, developers/apps would connect to a service name and never really know what the database might be. I think that would be extremely useful in a organization where there are single databases per version. Schemas/apps could migrate to a new version easily. That is the angle I think would provide value, along with being able to see various distinct services in AWR's, etc. In our organization it is many, many instances per host with OS workload management to "segregate" and "cage" instances. I would see services as a viable alternative, and would like to hear if it is being used in that context.
Thanks....
Stephen D, April 25, 2012 - 11:51 pm UTC
Dear Tom & Socrates,
Thank you very much for the information.
Regards,
Stephen
A reader, May 07, 2012 - 9:01 am UTC
Tom,
You point out that connections via services as opposed to SIDs are the way to go. We have felt the same here, and were planning on using services in our new RAC environment (we have been running single instance databases until now). However, we have run into an issue we can't seem to resolve.
We have a number of COTS products that build JDBC connections to the database on the fly. That is, the user enters into a window a server name, a port and a SID, and the COTS product builds the JDBC connection on the fly in the format SERVER_NAME:PORT:SID. However, for services, this doesn't work. Instead, the JDBC connection needs to be in the format SERVER_NAME:PORT/SERVICE (where server_name could also be the cluster name). The COTS product is not designed for services and therefore doesn't have an option to enter service instead of a SID. And there is no way to trick the COTS product to replace that last ':' with a '/'.
If we were dealing with an in-house developed application, this would be ok -- we'd fix it. But to get COTS vendors to make changes is not always easy.
We've done some research to see if there is some parameter that we could change on the cluster side to accept the ':' instead of the '/', but we can't seem to find anything. This is preventing us from implementing services.
Do you have any thoughts or suggestions?
Jan
May 07, 2012 - 10:43 am UTC
It is not on the server side where that URL gets processed - it is in the client jdbc code. It needs to parse that to figure out how to connect.
I'm sorry - I don't see how to correct this without touching the client.
why not writing your own jdbc driver ?
Sokrates, May 07, 2012 - 2:22 pm UTC
A reader, why do you not write your own jdbc-driver ?
All you have to do is implement the six methods listed on
http://docs.oracle.com/javase/6/docs/api/java/sql/Driver.html All beside
Connection connect(String url, Properties info)
you implement by delegating them to "the real" jdbc-driver ( the one you use now).
Before your Driver delegates
connect,
it changes SERVER_NAME:PORT:ABC in url into SERVER_NAME:PORT/ABC
Wouldn't that be a simple option ?
May 07, 2012 - 2:52 pm UTC
That is an interesting idea - something to look into.