Does BPEL PM use Oracle HTTP Server
Hi,
Can anyone throw light on how BPEL PM invokes external partner links ? Does it use the Oracle HTTP server to send out the invoke request ?
TIA
Maybe use should define what you mean by an internal service as you can connect to DB, JMS, AQ, WS, etc. I'm assuming you mean web service therefore basically the mechanism is HTTP. This does not mean that you need OHS. Also internal services can go through a HTTP server if you desire.
SOA Suite uses the same technology for both internal and external services. It is only your network that restricts connectivity. SOA Suite can connect directly to external services but this generally isn't recommended as it is a security risk.
If OHS is killed then you should fail over to another OHS, if this configuration is not in place you will lose connectivity to external services.
Have a look at this doc, it shows a Oracle's recommendation for enterprise deployments.
http://download.oracle.com/docs/cd/E12839_01/core.1111/e12036/toc.htm
cheers
James
Similar Messages
-
Use oracle http server to configure mod_plsql
Hi,
I have a question.
I have already installed HTTP server using the Oracle Database10g Companion CD
on my Windows 2000 SP4.
At the end of the installation, it refers to http://<computer_name>:7777
to open the HTTP server page.
It seems work fine that it showed the Welcome page of HTTP Server and I find this
"Oracle HTTP Server is the Web server component of Oracle Application Server 10g Release 2 (10.1.2). Oracle HTTP Server is a robust, reliable Web server based on the Apache HTTP Server, version 1.3."
But I could'nt do anything of using the mod_plsql components nor another
Modules (mods) which showed in the welcome page since there is no link to such things.
BTW, I have experienced with the HTTP server previously on Oracle9i
When I open the HTTP server page, it showed links to some Modules (mods)
components such as mod_plsql, etc.
Does the HTTP Server in this version need to be configured to use the links like in Oracle9i's HTTP Server?
Or the new Oracle HTTP server does not support for this thing?
Actually, I worked on Oracle Workflow, which need the Oracle HTTP server to configure
some few things such as DAD.
Please, can anybody help me to solve this problem.
Thanks,
Buntorolook at
http://download-west.oracle.com/docs/cd/B14117_01/server.101/b12255/confmods.htm
hope this helps
carlos -
Implementing SSL in Apex3.2.1 using Oracle HTTP Server 11.2g
Could anyone please point me at any up-to-date documentation that deals with implementing SSL on Apex3.2.1 and 11.2g Standard One Oracle HTTP Server or something close.
I'm using Windows 7 with Browser, HTTP Server and database all on the same machine for testing purposes.
I have done the following from what I have found so far:
In Oracle Wallet Manager I have created a Certificate Request, sent that to a CA and then imported the Trial SSL Certficate, Trial Secure Server Intermediate CA and Test CA Root Certificate from the CA.
I have updated Apex Admin Services/Manage Service/Instance Settings/Wallet with
file:directory-path and wallet password.
I rebooted the machine to restart all the services, in case I missed any.
However when I change the url from http to https and this is the only change I make then page not found appears. It maybe I need to change the port or some conf files but I'm not sure.
Thanks
dfrostThere is also DRM and Strategic Finance that use IIS, here is the oracle doc on it http://download.oracle.com/docs/cd/E17236_01/epm.1112/epm_install_start_here_11121/ch06s03s02.html
Cheers
John
jgblog -
Weblogic certificate is not being authenticated in Oracle HTTP Server
I am using Oracle HTTP Server with SSL and mod_proxy set up trying to pass a url through to the weblogic server. I start with my OHS url in the browser and the proxy is switches to the url to weblogic but I get the following error on the OHS side:
[2011-12-22T18:40:09.4683-07:00] [OHS] [INCIDENT_ERROR:32] [OHS-2077] [core.c] [host_id: denovm11-6] [host_addr: 10.139.164.196] [tid: 1155799360] [user: root] [ecid: 004hBXzInYHEOPb_THt1ic0007DM000002] [rid: 0] [VirtualHost: social.us.oracle.com:443] nzos proxy handshake error, nzos_Handshake returned 29024(server social.us.oracle.com:443, client 10.139.164.191)
[2011-12-22T18:40:09.4683-07:00] [OHS] [INCIDENT_ERROR:32] [OHS-2171] [core.c] [host_id: denovm11-6] [host_addr: 10.139.164.196] [tid: 1155799360] [user: root] [ecid: 004hBXzInYHEOPb_THt1ic0007DM000002] [rid: 0] [VirtualHost: social.us.oracle.com:443] NZ Library Error: Invalid X509 certificate chain [Hint: the client probably doesn't provide a valid client certificate]
[2011-12-22T18:40:09.4685-07:00] [OHS] [INCIDENT_ERROR:32] [OHS-9999] [core.c] [host_id: denovm11-6] [host_addr: 10.139.164.196] [tid: 1155799360] [user: root] [ecid: 004hBXzInYHEOPb_THt1ic0007DM000002] [rid: 0] [VirtualHost: social.us.oracle.com:443] (20014)Internal error: proxy: pass request body failed to 10.139.164.191:7001 (denovm11-1.us.oracle.com)
[2011-12-22T18:40:09.4685-07:00] [OHS] [INCIDENT_ERROR:32] [OHS-9999] [core.c] [host_id: denovm11-6] [host_addr: 10.139.164.196] [tid: 1155799360] [user: root] [ecid: 004hBXzInYHEOPb_THt1ic0007DM000002] [rid: 0] [VirtualHost: social.us.oracle.com:443] proxy: pass request body failed to 10.139.164.191:7001 (denovm11-1.us.oracle.com) from 10.139.164.196 ()
And the following error on the weblogic side:
####<Dec 22, 2011 6:40:10 PM MST> <Warning> <Security> <denovm11-1> <AdminServer> <[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <8e6c6502a1af117a:4eeee51e:13466bb040d:-8000-000000000000a764> <1324604410502> <BEA-090482> <BAD_CERTIFICATE alert was received from denovm11-6.us.oracle.com - 10.139.164.196. Check the peer to determine why it rejected the certificate chain (trusted CA configuration, hostname verification). SSL debug tracing may be required to determine the exact reason the certificate was rejected.>
Here is my ssl.conf from OHS:
# Oracle HTTP Server mod_ossl configuration file: ssl.conf #
# OHS Listen Port
Listen 443
<IfModule ossl_module>
## SSL Global Context
## All SSL configuration in this context applies both to
## the main server and all SSL-enabled virtual hosts.
# Some MIME-types for downloading Certificates and CRLs
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
# Pass Phrase Dialog:
# Configure the pass phrase gathering process.
# The filtering dialog program (`builtin' is a internal
# terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog builtin
# Inter-Process Session Cache:
# Configure the SSL Session Cache: First the mechanism
# to use and second the expiring timeout (in seconds).
SSLSessionCache "shmcb:${ORACLE_INSTANCE}/diagnostics/logs/${COMPONENT_TYPE}/${COMPONENT_NAME}/ssl_scache(512000)"
SSLSessionCacheTimeout 300
# Semaphore:
# Configure the path to the mutual exclusion semaphore the
# SSL engine uses internally for inter-process synchronization.
<IfModule mpm_winnt_module>
SSLMutex "none"
</IfModule>
<IfModule !mpm_winnt_module>
SSLMutex pthread
</IfModule>
## SSL Virtual Host Context
<VirtualHost *:443>
<IfModule ossl_module>
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# Client Authentication (Type):
# Client certificate verification type and depth. Types are
# none, optional and require.
SSLVerifyClient none
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
SSLCipherSuite SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
# SSL Certificate Revocation List Check
# Valid values are On and Off
SSLCRLCheck Off
#Path to the wallet
SSLWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</IfModule>
<IfModule proxy_module>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# Path to the wallet
SSLProxyWallet "${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/keystores/default"
SSLProxyEngine on
SSLProxyVerify none
# ottest : denovm11-1
ProxyPass /test https://abc.us.oracle.com:7001/test
ProxyPassReverse /test https://abc.us.oracle.com:7001/test
</IfModule>
</VirtualHost>
</IfModule>
On the OHS side I have all the certificates needed so SSL is working properly. The weblogic environment is currently working fine with other webgates, but those are apache and we are trying to switch to OHS.
Can OHS use mod_proxy to connect to weblogic or do I need to use mod_wl_ohs?
Does anyone see anything wrong in my ssl.conf file in regards to the proxy section.
Thanks in advance.In summary:
You need to create a new wallet with CSR (certificate signing req)
Send this to your certificate authority and get the signed server certificate.
Now import the signed server cert and the trusted root cert in to the wallet that you created newly.
Modify ssl.conf to point to the new wallet location.
To create wallet refer to : http://docs.oracle.com/cd/E25054_01/core.1111/e10105/wallets.htm#CHDGIJDC
Further reference: http://docs.oracle.com/cd/E25054_01/core.1111/e10105/sslconfig.htm#CBDGIJDF
Dont mind if this doc is 500 pages ;) -
Slow performance with oracle http server connecting weblogic
I have a performance issue while using Oracle HTTP server as a proxy with weblogic server. It takes 10-15 seconds to pass the requests.
I also received the error related to SSL in my error logs even though i havent configured the SSL.
please find the error received in the OHS error logs
nzos handshake error, nzos_Handshake returned 28862
NZ Library Error: SSL IO error [Hint: the client stop the connection unexpectedly]
And please find a request information from the access log files.
Fri May 28 09:24:48 2010 <5944127503148828> getPooledConn: No more connections in the pool for Host[114.57.162.39] Port[6499] SecurePort[6499]
Fri May 28 09:24:48 2010 <5944127503148828> general list: trying connect to '114.57.162.39'/6499/6499 at line 3082 for '/fed/user/authnoam?refid=id-ixGFItkxw4Nt4l3wlz4W9sWR-ao-'
Fri May 28 09:25:00 2010 <5944127503148828> SSL is not configured for this connection
Fri May 28 09:25:00 2010 <5944127503148828> Local Port of the socket is 4472
it is visible that the while it is doing "general list trying to connect to" it takes a long time
Any pointers are highly appreciated.Shannon,
The OHS + Weblogic installation, just means you will have an admin server, with Enterprise Manager that can manage your OHS instances. That being said:
1 - You don't have to extend any domain, since the only thing OHS will need is an Admin Server with Enterprise Manager.
2 - I (myself, I don't speak for Oracle here) have a personal preference of having stand alone OHS. If you don't know how to work with httpd.conf and mod_wl.conf, I would suggest installing a separate domain only for it, that way you can keep the weblogic turned off, and turn it on only when you need to edit any configuration.
Thanks -
Oracle HTTP Server 9.0.2
Can I use Oracle HTTP Server 9.0.2 for HTMLDB 2.0? Is there any issue with that version?
Thanks.
AndyWhat does the error_log of the Oracle Apache HTTP server say? This is typically in the $ORACLE_HOME/Apache/Apache/logs directory.
Weird that a mutex create failed. Without the actual o/s error code that resulted, it is difficult to diagnose the problem. Anything in the Application (or Security) Event Log? Access denied seems to indicate an ACL failure of sorts.
You could also disable FastCGI - it is not very often used and APEX (mod_plsql) does not need it. The httpd.conf file (in $ORACLE_HOME/Apache/Apache/conf) can be edited to disable FastCGI. -
Hi,
I need to install Siebel Application on Linux-64 bit, for which I have to use Oracle HTTP server as my web server.
The system requirements guide for Siebel mentions that I will need - Oracle HTTP Server 10.1.3.3 (based on Apache Web Server v2.2 or above).
But I am unable to find Oracle HTTP based on Apache Version 2.2 or above, instead I am able to find Oracle HTTP 10.1.3.3 based on Apache 1.3.
Can anyone direct me to the appropriate place to find Oracle HTTP Server 10.1.3.3 (based on Apache Web Server v2.2 or above)http://www.oracle.com/technology/software/products/ias/htdocs/101310.html
-
Upgrade Oracle http server for last servlet function
Hi
Currently i use Oracle http server with servlet.
It seems that my version with jsdk.jar file don't support EncodeUrl function and web.xml file.
How can i upgrade my server ?
I have tried to replace jsdk.jar file with servlet22.jar file but without results !
Where can i found more information ?
Thanks
PhilippeHi all
That´s right, the OHS was installed with the Fusion Middleware Web Utilities installation and working fine !
The Apex application is online without problems.
Now, my challenge is to implement the security certificate (SSL) on OHS.
I´ve been read many things but I´m a little confused and looking for a specific documentation to do that.
The certificate was generated and got the especific files ( .cer / .crt / .key ) but the problem is how to configure.
Is it necessary to install another software ?
Is wallet manager must be used or just configure some files like ssl.conf ?
Thanks in advance for any help.
Angelo -
How to get rid of /j2ee prefix from URL when I use the OC4J via Oracle HTTP server
In 9iAS 9.0.2 Oracle HTTP Server (OHS) is pre-configured to assign requests to the Home OC4J instance via the URL-prefix "/j2ee"/
For example, the TEST servlet under OC4J would be passed through OHS using:
http://urmachine:urApachePort/j2ee/TEST
whereas in the standlone OC4J version, this URL works:
http://urmachine:urOC4JPort/TEST
How to get rid of /j2ee prefix from URL when I use the OC4J via Oracle HTTP Server?It is getting the url prefix from mod_oc4j.conf
under /ora9ias/Apache/Apache/conf
You can read more on this at
http://otn.oracle.com/docs/products/ias/doc_library/90200doc_otn/web.902/a92173/confmods.htm#1008977
-Prasad -
Using php with oracle http server
Hello folks
This question might have been answered on this forum, but i haven't found it yet.
Is it possible to integrate php into the apache server that is supplied with the oracle (9.2) database, the so called Oracle HTTP Server?
What technical issues are to consider and how do you do it on linux in that case? (SLES8)
Is there any support issues to consider if somebody modifies this oracle supplied http server?
Looking very much forward to some help...
Regards,
ChristianWell it was a spelling mistake in the beginning. I get the following output now:
./configure --with-oci8=$ORACLE_HOME \
--with-apxs=/opt/oracle/product/9ir2/Apache/Apache/bin/apxs \
--enable-sigchildcreating cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for AIX... no
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking for re2c... exit 0;
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for gawk... gawk
checking for bison... bison -y
checking for bison version... 1.35 (ok)
checking for flex... lex
checking for yywrap in -ll... no
checking lex output file root... ./configure: line 2425: lex: command not found
configure: error: cannot find output from lex; giving up -
Using an Oracle Directory as DocumentRoot in Oracle Http Server
Hello,
¿Is it possible that OHS(Oracle Http Server) use an Oracle Directory(directory object in database) as its DocumentRoot? The idea behind that is put the web application's files in Oracle Directories for easily make updates and versioning.
Thank you very much for your help in advance.Thanks Gary , Your reply is perfectly correct ,
I have verified the same with ETL data lineage guide ,
The Columns that match to the MCAL_CAL_NAME~MCAL_PERIOD_TYPE
MCAL_CAL_NAME = GL_PERIODS.PERIODS_SET_NAME
MCAL_PERIOD_TYPE = GL_PERIODS.PERIOD_TYPE
Query for same to get from EBS Source will be
select period_set_name , period_type From gl_periods ;
Thanks For Help !!
Regards
Neeraj Saini -
Use apache webserver instead of oracle http server in EPM 11.1.20?
Is it possible to configure enterprise performance management 11.1.20 with apache webserver instead of using the default oracle http server and if so, can someone point me to the instructions for how to set this up?
Wow. You really need to keep going back to check the certification matrix, huh. The version I have shows that Apache is supported. Apparently that was deleted on 7/28.
I don't think it should matter much, though, since Oracle HTTP server is Apache under the covers.I ran into this when I had to use the IBM HTTP web server, which is also Apache under the covers. when you look at httpd.conf, it looks just like Apache. So, I would guess that whatever configuration you did with the Apache web server you will also be able to do with the Oracle web server.
Jerry -
Oracle HTTP Server (OHS) Installation Problem on Win 2003 Server SP2
Hi,
I tried to install Oracle HTTP Server (OHS) on my Windows 2003 server SP2, however I couldn't manage to succeed this.
I tried on 3 different win2003 server SP2 machines and couldn't able to install properly.
I easily installed and run this HTTP server on my Windows 7 machine. However on the other partition of my PC
windows server 2003 is installed. It didn't worked on this OS.
Once I was somehow able to install OHS on my 64 bit Windows 2008 Server, but again never:((
I got the following error messages during the install.
waiting for your answers .
ERROR1
Web Tier Configuration
Log
Config Action Web Tier Configuration started
Create and Start AS Instance (instance1)
Error
Unable to validate NonJ2EEManagement Application deployment on admin server.
Step Create and Start AS Instance (instance1) failed
Unable to validate NonJ2EEManagement Application deployment on admin server.
Step Create and Start AS Instance (instance1) failed
Log
Step Create and Start AS Instance (instance1) started
Deploying NonJ2EEManagement Application...
Step Create and Start AS Instance (instance1) failed
Step Create and Start AS Instance (instance1) failed
Create and Start OHS Component (ohs1)
Log
Create Shortcuts
Log
ERROR2
Web Tier Configuration
Log
Config Action Web Tier Configuration started
Create and Start AS Instance (inst2)
Error
Unable to start opmn
Step Create and Start AS Instance (inst2) failed
Unable to start opmn
Step Create and Start AS Instance (inst2) failed
Log
Step Create and Start AS Instance (inst2) started
Creating Oracle Instance directories...
Recording OPMN ports reservations...
Bootstrapping OPMN configuration files...
Instantiating opmnctl for direct usage...
Registering instance
Step Create and Start AS Instance (inst2) failed
Step Create and Start AS Instance (inst2) failed
Create and Start OHS Component (ohs2)
Log
Create Shortcuts
LogA few guesses what could be wrong.
- Under which user are you installing, does this user have all the rights to create and start stuff.
- Have you first installed a weblogic server (this should be installed) and did associate any components with the weblogic domain?
I usually do not associate anything with my weblogic domain and configure the httpd.conf file for the Apache server by hand instead of using the enterprise manager.
Once the WebLogic server is installed i follow the following steps
Installation WebTier
Run setup.exe
Select Install Software - Do Not Configure.
Click Next.
Prerequisite Checks --> Next.
Accept the default installation directory.
Click Next.
Uncheck i wish to... click Next (in the pop-up Yes)
Click Install.
Click when the installation it finished and click Finish
Configuration WebTier
Run the file <WebTier-Home>/bin/config.bat.
Click Next
Uncheck Associate Selected Components with WebLogic Domain and click Next
Accept the defaults and click Next
Enter the parameters for the WebCache
Web Cache Administrator Password: password
Confirm Password: password
Click Next.
Select Auto Port Configuration and click Next.
Uncheck I wish to... and click Next. (pop-up Yes)
Click Configure
Click Next and Click Finish
When i follow the above steps an instance of the webtier is running. -
Installation Problem about ORACLE HTTP SERVER 10g
I tried to install oracle http server on windows xp sp2. Everthing was all right until
it made some recommend tasks while installing. It could'nt start the http server at there. I completed the installation. After then when i connect to the internet and try to start http server it starts. But when i do not connect to the internet it gives an error like apache.exe couldn't start on executing ApacheModuleonsinst.dll. I want to learn what causes to this problem.pparkko wrote:
With this type of behaviour, you always need to find out the real error.
Try opening a command prompt (cmd) and running the command from the command line.
Then you can see what is going wrong.I have a question, I just upgraded our test 11i database (9i) to 10g (10.2), as a part of that upgraded forms, reports, graphics to patchset 18. Now planning to install 10giAS on appsTier on which forms, Apache and discoverer running. If I install 10giAS in differnet home, how can I get that in to appsTier?, does it mean adapcctl script no longer be used to start webservices?. I haven’t done this before, if my question is stupid, please ignore :). -
Oracle HTTP Server download bandwidth limited on Windows 2003 Server
Hi,
we have an ApEx application with the following configuration on the server:
OS: Windows 2003 Server 64Bit
DB: 10.2.0.3 64bit
HTTP Server: the one that comes on the companion CD of Oracle DB 10g 32 bit
and after the bandwidth in the datacenter where the server resides was increased, I discovered a problem related to the server download bandwidth. I found on Metalink a Note [568075.1 - HTTP Server File Download Speed Is Slow |https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=568075.1] , but unfortunately not a very clear resolution given the fact that we use Oracle DB SEOne, so options 1 & 2 will involve additional licenses costs.
I tried option 3 suggested in the note by using the HTTP Server that comes with 11g (I assume this is a supported configuration also from licenses point of view HTTP Server from 11g on top of Oracle DB 10g) and I got a boost in performance but the bandwidth is still 70% compared to the bandwidth I get when downloading from the IIS on the same server.
Has anyone went through this exercise and found a solution for fully using the server bandwidth without needing to go for option 4 in the note, using Linux :), as in our case this will involve again additional licenses and/or hardware costs as the HTTP Server that comes with the DB has to be installed on the machine where the DB is installed?
Thanks in advance,
FlorinOoops ... things like this happen with Oracle Support, no answer?
Can you tell me anyway the SR number or the SR title so that I can write it in the SR I make? Like that maybe Oracle Support will work harder on the case, as there are more customers hitting the same problem.
Anyway in the meanwhile, I run some tests with the original Apache and this one works like a charm even in Windows 2003 Server. What remains now to be done is to use the Open Source Apache as proxy to the HTTP Server, as it looks like it handles much better the static content, it supports also mod_gzip or mod_deflate, but does not support mod_plsql :(. So I think the combination of the two: will do the work for me, but it is really a pity that I have to configure 2 web servers because the HTTP Server has flaws in it :(. Hopefully these will be fixed soon
Maybe you are looking for
-
How do i contact or give the request to the seller if my ipad is in active screen?
i bough an ipad mini from a person (2nd bough the ipad), when he give me the ipad mini has fw 7.0.4 and didnt have icloud or appstore id, but when i bring it home, i try to reset all settings and it ask me pin code (i ask the 2nd user and he said he
-
How to display sinlge character in o/p column(matnr) in Alv
Alvreport: material no in output is displaying Matnr sdmo46dm0012 from the above i want to display only fifth character in o/p:
-
I have an iMac with a 2.7 GHz Intel Core i5, a 8 GB memory, and OS X Yosemite, version 10.10.2. I was wondering if what happened with my computer could be a virus or something else. It's only a few months old and it's never happened before. Thanks.
-
A app on my apple acct that is not mine & I can not get rid of it
a app on my apple acct that is not mine & I can not get rid of it
-
OMB script to remove DBLink and Schema configuration from mapping
In OWB903 we have used prefixes for most of our tables used in mappings. (By right clicking on the mapping, choosing configure and then setting the Schema/DB Link for each table under "Sources and Targets") We are now in the process of upgrading to O