Now the first production release is out…
Check it out: WSDL services via the Oracle Protocol Listener. As mentioned in the documentation of the Oracle XMLDB Developers Guide, to enable the WSDL service:
DECLARE
SERVLET_NAME VARCHAR2(32) := 'orawsv';
BEGIN
DBMS_XDB.deleteServletMapping(SERVLET_NAME);
DBMS_XDB.deleteServlet(SERVLET_NAME);
DBMS_XDB.addServlet(NAME => SERVLET_NAME,
LANGUAGE => 'C',
DISPNAME => 'Oracle Query Web Service',
DESCRIPT => 'Servlet for issuing queries as a Web Service',
SCHEMA => 'XDB');
DBMS_XDB.addServletSecRole(SERVNAME => SERVLET_NAME,
ROLENAME => 'XDB_WEBSERVICES',
ROLELINK => 'XDB_WEBSERVICES');
DBMS_XDB.addServletMapping(PATTERN => '/orawsv/*',
NAME => SERVLET_NAME);
END;
/
This wil update the xdbconfig.xml file.
To use the WSDL service grant the role XDB_WEBSERVICES to the schema that needs it. This role enables use of Web services over HTTPS; it is required to be able to use Web services.
The service can be used via http://host:port/orawsv and http://host:port/orawsv?wsdl
To quickly register this against the listener use the statement:
SQL> ALTER system register;
System altered.
A little bit more resource will come in handy so add some extra shared server, for example, via the following statement that sets the amount to five shared servers:
SQL> ALTER system SET shared_servers = 5;
System altered.
Two extra roles are available:
- XDB_WEBSERVICES_OVER_HTTP – Enable use of Web services over HTTP (not
just HTTPS). - XDB_WEBSERVICES_WITH_PUBLIC – Enable access, using Web services, to
database objects that are accessible to PUBLIC.
Be aware that access can be restricted via the DBMS_XDB.SETLISTENERLOCALACCESS method, so when in trouble, keep this in mind aswel…
The WSDL services can also be better controled/secured via integration with the Oracle Web Service Management(OWSM) section in the Oracle SOA Suite. This way the WS is ready to fit in the Oracle “Fusion” infrastructure.
Enjoy.
🙂
Related Posts:
- Oracle 11g – My top 10 new XMLDB features
- HOWTO: Enable the Protocol Server (Listener)
- DBMS_XDB.SETLISTENERLOCALACCESS
- APEX installation via the Oracle Protocol Server (listener)
- Registering non-default XMLDB HTTP/WebDAV and FTP ports on a non-default Oracle Listener port
- Small introduction to SQL*Net debugging
- Great Example of Mark Drake on the OTN XMLDB Forum regarding WSDL
For more examples see also http://tardate.blogspot.com/2007/08/first-tests-of-11g-native-web-services.html
Marco,
I’m implementing an architecture which uses Database Native Web Services, and based on the info you’ve shared here, planned to use OWSM to secure those services. In purchasing the latest fusion middleware, it appears the Gateway capabilities that otherwise enabled the ability to protect database native web services is gone in the 11g version of OWSM!! I’m trying to secure and proxy both web service calls from the database as well as exposures. How would you recommend securing these activities in light of the changes to OWSM?
Thanks,
Dale
I don’t follow the OWSM product closely, so I would have no idea. On the otherhand there is nowadays also a standalone alternative called the Oracle Enterprise Gateway that they bought during acquisition. I fiddled around with it a bit and from what I have seen its a nice lightweight standalone product
http://www.oracle.com/us/technologies/soa/soa-governance/enterprise-gateway-345737.html
Hello Marco –
We’re thinking of using Database Native Web Services in our production environment. We’ll be using Oracle 11g R2 database.
The database web services will be called by customer facing eCommerce application. There could be 100’s of concurrent request coming from the web application for query operation (It will be just query requests. querying our customer/address/contact/user data. No update)
Has anyone used database native web service in production environment? Is it scalable/reliable option?
Can built-in database web server scale against 100’s of concurrent request?
Appreciate any feedback.
Thanks
I know people use it in production environments, but have no clue how “wide spread” it actually is. You have an expression here in Tom Kytes request regarding XMLDB usage:
http://tkyte.blogspot.nl/2012/05/requesting-your-input.html
But you always can ask on the OTN XMLDB forum as well.
https://forums.oracle.com/forums/forum.jspa?forumID=34
HTH
🙂
Marco – one more thing.
In my testing, Oracle appears to run out of available http connections after four or five calls.
In our scenario, eCommerce application could make 100′s of concurrent call to the same web service.
How can we fix this?
Thanks
NDWS, serviced by the XDB protocol server is using the underlying SHARED SERVER functionality. This functionality was once invented to be able to server hundredths of connections.
Via the SYS account do a
This should give you more responsiveness.
Thanks Marco for a quick response.
I would appreciate your comment on NDWS scalability and reliability.
How can we enable anonymous access to the database native web services?
Thanks
Search the forum for answers. It has already been addressed there. Furthermore opening up the database via “anonymous” access is seen as a security risk… You should use something like OWSM or Oracle Enterprise Gateway in the middle to control and manage the services provided.
This is for example a hit I got from searching the forum
https://forums.oracle.com/forums/thread.jspa?messageID=10189474�
Marco – I didn’t quite follow the post. The link to other site appears to be broken
http://www.sencha.com/learn/legacy/Manual:RESTful_Web_Services#HTTP_Authentication
Appreciate if you shed some light.
Thanks