I have Oracle 11g, configured to use Real Application Cluster (RAC) and storage.
I thought XA is for 2PC transactions , for multiple data sources/managers.
Thanks.
In theory you wouldn't have to use any different driver for Oracle RAC, because it should resolve clustering and scaling behind the scenes.
You need XA transactions when you have several different data sources which should be used under one transaction.
Do you experience any issues when using non-XA driver with Oracle RAC?
Related
Which one should I use for a modern backend Java application using Oracle OLTP database as a datasource?
To me HikariCP looks like a de-facto standard pool for a modern Java application. But now I need to maintain some project from the past, which is currently stuck at Oracle drivers v11 and using UCP. I am wondering now: does Oracle's UCP have any advantages over HikariCP? Would you use UCP or HikariCP?
Fresh Spring Boot project generated at start.spring.io will use HikariCP by default (Even though since 2.4 there is a support for UPC), until you explicitly enforce UCP in application.properties:
spring.datasource.type=oracle.ucp.jdbc.PoolDataSource
The Spring Boot docs say:
1. We prefer HikariCP for its performance and concurrency. If HikariCP is available, we always choose it.
...
4. If none of HikariCP, Tomcat, and DBCP2 are available and if Oracle UCP is available, we use it.
The Oracle website contains tutorials (1, 2) on how to use UCP with Spring Boot, but not explaining any advantages of such setup. I found an old StackOverflow answer mentioning some "non-blocking architecture", but I am still not sure if it makes UCP more valuable or reliable than HikariCP.
The Oracle UCP pool has a lot more features than HikariCP: "labelling" allows you to label special connections for later reuse, "request boundaries" is a new standard in JDK9 that provides a hint to the driver when a connection is borrowed or released into the pool, diagnostics and observability MBean and a bunch of integrated features that are specific to the Oracle Database such as Application Continuity, RAC Failover, Sharding, etc.
UCP also performs really well. It undergoes performance evaluation on a regular basis and, because of its non-blocking infrastructure, can maintain a very large number of connections being shared by 1000s of threads.
Note that UCP has a very large community of users among the Oracle Database users in the cloud and on-prem.
Airpal currently uses presto client to connect to PrestoDB. However as I understand, it can also use JDBC for this connectivity. Is there any code available for this purpose? Even if it is for connecting to any other database it might be helpful for me. The model for presto client looks a lot different than other models like JDBC etc.
Airpal is using presto client connectivity and also using these objects (mostly for schema and data like Column, QueryResults etc.) internally in its various modules.
One way for providing JDBC connectivity is to move its lowest layer of DB connectivity (executeWith invocations of com.airbnb.airpal.core.execution.QueryCliemt: there is 1 for data and about 6 for metadata) to JDBC query execution. The JDBC results (mostly data and schema) can then be converted to presto client api equivalent objects and rest of the logic in airpal would follow.
Another approach is to rewrite airpal with native JDBC support by moving over to JDBC objects for internal use and communication as well. It looks like a much bigger change.
I am planning to add support for dynamically choosing between presto client or JDBC connectivity. I will use the com.airbnb.airpal.presto.QueryRunner to hold either a presto client session or a JDBC connection accordingly.
I use Spring-JPA in my application. I use container managed option for EntityManager and use JTA transaction manager.
this Java EE application is deployed in JBoss clustered environment, will the isolation of transactions be taken care of?
In other words, will two different requests on different JBoss nodes and two different request processed on one JBoss node behave differently in isolation perspective?
The transaction isolation behaviour and limitations are dependent on the database provider. Now if your using Oracle RAC , I haven't seen issues but on a MYSQL instance this is an issue.
How can I connect to Oracle Advance Queue(AQ) from Oracle ADF. I want to display Advance Queue(AQ) data (i.e. payload XML) in table format into a adf ui page.Is there any adapter available for that?
You might want to use Message-Driver Beans (as Oracle AQ is an implementation of JMS). I think these links could help you:
Oracle AQ with Message-Driven Beans (here you'll find a sample of an ADF Fusion application)
How to connect Oracle AQ to MDB
Using MDB with ADF
Can someone help me understand how to expose the SYS schema objects of a JBoss Teiid Virtual Database when connected via an ODBC-JDBC bridge ?
The client is connecting to ODBC side of the bridge and the JDBC side of it is connecting to the Virtual Database (VDB) running on the JBoss SOA server.
With the current setting only the tables and columns modeled thru the JBoss Studio's Teiid Designer are exposed but not the SYS schema and its underlying objects. Client App is Microstrategy BI application.
You are able to traverse all metadata from all used data sources using native JDBC JAVA API.
I am new to Teiid and had the similar question.
When you create the VDB with JBoss designer you can specify which models will be exposed to the client applications. As a good practice, only View models are exposed and Source models are not. As a result, querying against the System tables of the VDB will only show you the metadata within the View models, which will be a subset of the metadata in the underlying data sources.
Hope this helps.