Category Archives: Java

Consultancy

I have a permanent job at the NetCracker‘s System Performance group. Recently I was offered to do one day job outside, on-site in another company, which coincidentally has an office close to NetCracker’s Moscow office. It was an opportunity to apply my skills in a completely different situation which I couldn’t miss; plus I’ve never done public presentations before and this was a good occasion to practice that. Here I’d like to write down some notes how the event went.

Continue reading

DST in Russia

Daylight Saving Time in Russia has been changed last year. Oracle published a FAQ on the support site about this: Russia abandons DST in 2011 – Impact on Oracle RDBMS [ID 1335999.1].

Continue reading

JIT

Starting with Oracle 11gR1 Oracle JVM includes Just-in-Time compiler. Its goal is to convert JVM bytecode into platform-specific native code based on the performance data gathered in run-time. It is stated in the documentation that JIT “enables much faster execution” – and this is, in general, true. There are ways to control the behavior of JIT, one way is described in the MOS Doc ID 1309858.1, and another one here.

Continue reading

When column name matters

There’s a thread on the OTN forum with a case of amusing behavior of the 11.2.0.1 JDBC driver: it fails to detect properly all bind variables in an SQL statement referencing column named NORDER.
WTF?!

PS.
1) Oracle’s SSO is actually Multi Sign-On because I have two accounts (one for OTN forums and one for MOS) and have to relogin each time I switch from MOS to OTN forums.
2) I hate that.

WLS + Oracle benchmark – 2

Another press release from Oracle on the same topic: benchmark of WLS 10.3.3 (not released yet) + Oracle 11.2.0.1 @ Dell PowerEdge R910 Server with 4×8-core beasts X7560 (announced today by Intel). Benchmark was done by Oracle itself (previous were conducted by Cisco & HP). Results and FDA are here. DB & WLS configuration are pretty much the same as in previous run, but there are some variations in numbers, like ~400GB redo logs instead of ~140GB; with one big change: compatible=11.2.0.1.

WLS + Oracle benchmark

Today Oracle announced this press release. Cisco Systems tested WebLogic SE 10.3.3 (not available yet) + single-node Oracle 11gR2 @ Cisco UCS C250 M2 Rackmount Server with 2×6-core Intel Xeon X5680 (not available yet) – here are the results. I want to highlight some specifics about this test bed – after all, it’s interesting to know what’s behind the scene.

Continue reading

Cardinality of table collection expression

Table collection expression has been in Oracle for more than 10 years. It is handy for passing an array to Oracle. Quite often, though, there is was a well-known problem with a default cardinality associated with table collection expressions used in the SQL.

Continue reading

Edition name as a property for JDBC thin client

A question on Edition-Based Redefinition appeared on the OTN forum:

The purpose is to try to upgrade an app in production. For most application users they will keep using the pre-upgrade app connecting to the old edition by default, while at the same time some UAT users will test out the post-upgraded app on the new edition. The question is how will the Java app connect to a user schema to use the new edition

Continue reading

DatabaseMetaData#getIndexInfo()

If you were an Oracle developer and you were asked to implement a small part of the JDBC driver functionality – the getIndexInfo() method of the java.sql.DatabaseMetaData interface – how’d you do that?

Continue reading

JNI in Oracle

JNI – Java Native Interface – is an interface for cooperating Java and legacy code. Oracle RDBMS doesn’t support it officially in embedded Oracle JVM (aka “Aurora”):

Oracle Database does not support the use of JNI in Java applications. If you use JNI, then your application is not 100 percent pure Java and the native methods require porting between platforms. Native methods can cause server failure, violate security, and corrupt data.

All true – and nevertheless it’s working.

Continue reading

“java.lang.OutOfMemoryError: unable to create new native thread” in WLS

Recently I’ve struggled with subj. One of the customers of the company I’m working has encountered several “java.lang.OutOfMemoryError: unable to create new native thread” appearances in a clustered WebLogic Server 9 environment. Here I’ll describe why it could happen and possible workarounds for this error.

Continue reading