Author Archives: alesk

Oracle JAccelerator NCOMP

Oracle made two silly mistakes when 10g was released:

  1. they put JAccelerator NCOMP (Java Native Compiler) component on Companion disk. Put mandatory component of the database on Companion disk and just wait for the flow of the Service Requests – and Oracle Support got the “feedback” from customers who overlooked the requirement to install this mandatory component from Companion disk.
  2. They learned the lesson and corrected a mistake in Oracle11g where JAccelerator is installed at the time database SW is installed (you may argue that JAccelerator is really not a mandatory component in 10g…this is only true if you run database without JVM. Do you support any such db?;-).

  3. second silly decision is really an old story – I don’t know who is the genius behind the idea to not let us choose which component we would like to install with OUI. We had to install tons of demo stuff just to get JAccelerator component on our server, followed by de-installation of components that we don’t need. If I choose “Custom Installation” I want control of what will be installed and what not – please, don’t treat me like an idiot.

Now, it’s time for a confession :-). Today (before I got necessary dose of caffeine), I was too quick while preparing test installation of Oracle 10.2.0.3 – after I finished installation of 10.2.0.1 base release, I patched this version with Patchset 10.2.0.3. In the middle of 10.2.0.3 installation, it struck me that I forgot to install JAccelerator. Fortunately, I was installing Oracle SW without the database, so the fix was easy after 10.2.0.3 installation finished:

  1. I installed JAccelerator from 10.2.0.1 media
  2. then re-installed 10.2.0.3 patchset. OUI will display additional panel, if detects that some components are already patched, showing all the installed components and you can browse the tree and check that only JAccelerator will be patched from 10.2.0.1 to 10.2.0.3.

I’m not quite sure, what would be the exact procedure if you installed JAccelerator after database was already created without it (JVM loaded without NCOMP). I guess JVM needs to be reloaded (see Metalink 276554.1 “How to Reload the JVM in 10.1.0.X and 10.2.0.X”)– not for the faint of heart!

Regards,
Ales

A short note about migrating dbaTicket application from MySQL 4.0 to 5.0

dbaTicket is a small internal MS Access application that is using MySQL as a backend.

First, I downloaded and installed MySQL 5.0.45 on Windows XP, then I downloaded and installed MySQL ODBC 3.51.19. During installation I picked up CP1250 for default character set of database. So far so good.

The next step was to prepare database and user who’ll own the dbaticket database:

cmd> mysqladmin -u root -p create dbaticket
cmd> mysql -u root -p
mysql> grant all privileges on dbaticket.* to 'dbaticket'@'localhost' identified by 'mypwd';
mysql> grant all privileges on dbaticket.* to 'dbaticket'@'%' identified by 'mypwd';

The next step was to export database from production server and import the dump into new MySQL 5.0 (everything below was executed while being logged on Windows XP workstation with MySQL 5.0 running):

E:> mysqldump -u root -p -h prodserver dbaticket > dbaticket.sql
After I checked that data in the file is encoded in CP1250 characterset I imported data to MySQL 5 with:
E:> cat dbaticket.sql | mysqldump -u root -p dbaticket  

The next step was to prepare new ODBC System DSN, named DBATICKET with the MySQL ODBC driver 3.51.19. After that, I had to delete all linked tables from dbaticket.mdb and replace them with the new ones, referring to System DSN: DBATICKET.

At first all seemed OK, application worked. However, I soon noticed that all slovenian letters displayed according to CP1250 code page, except for letters Č and č. Weird. I checked my.ini, I couldn’t find anything wrong – default-character-set was cp1250. Yet, I couldn’t read (nor write) Č and č characters with MS Access.

Quick search on Google revealed solution; you have to add init-connect="SET NAMES cp1250" to [mysqld] section of my.ini.

Example:

# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this 
# file.
#
[mysqld]

init-connect="SET NAMES cp1250"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=cp1250
...

Bug – DCD (Dead Client Detection) doesn’t work as expected

For quite some time we observed dead client connections on some of our production servers (in all cases: 32-bit Oracle10g 10.2.0.2, Windows 2003 SP1). We turned dead client detection ON by setting up SQLNET.EXPIRE_TIME in sqlnet.ora on the server side, trying different values (5, 10, 15 minutes). Despite of that, we noticed that DCD doesn’t work for no apparent reason. We confirmed that by tracing the session according to Metalink Note 1019019.102 “How to Check if Dead Connection Detection (DCD) is Enabled”. It was during this search on Metalink that we found out about Bug #5573896 “DCD IS NOT WORKING IF SET MORE THAN 1 MINUTE”. After setting SQLNET.EXPIRE_TIME=1 the problem with dead client connections disappeared – well, better said the problem was not as severe, as before we changed EXPIRE_TIME to 1 minute. Occasionally, we still find dead connections that Oracle doesn’t recognize as dead connections. According to Metalink note it’s a platform specific bug – it’s not known yet when’ll be fixed.

So far we found out that:
– this is the problem with Oracle 10.2.0.2/10.2.0.3 on Windows 2003 / XP
– we could not reproduce the problem running Oracle 10.2.0.2 on Windows 2000 (SP4)
it doesn’t seems to affect Windows 2003 EMT64*

[Comment added, 2 November, 2007]
* Actually, it does affect Windows 2003 EMT64 as well. Last week we put in production Oracle 10.2.0.3 (+Patch 12) on 64-bit Windows 2003 EE with SP2. After a week in a production we noticed dead client connections as described above.

Regards,
Ales

SIOUG 2007, for the very first time…

…I’m pleasantly surprised by the agenda of SIOUG 2007, twelfth Slovenian Oracle User Group. For the better or worse I was avoiding attending SIOUG conference so far. With the exception of two or (max) three speakers, I simply didn’t find the content that would draw my attention and justify my travel to Portorose.
On top of that, I don’t like the venue of the conference (I’m not sure exactly why I dislike Portorose so much) , so it was always a simple decision for me – no go! :)

This time around it’ll be a much tougher decision, it could well mean I’ll reserve a day or two and attend the SIOUG to listen to the presentations listed below:

Wolfgang Breitling, “Tuning by Cardinality Feedback”

Wolfgang Breitling, “Joins, Skew and Histograms”

James Morle, “Skew and Latency: The Silent Killers”

James Morle, “Brewing Benchmarks”

Julian Dyke, “Investigating Oracle”

Julian Dyke, “Flashback Logging”

Joze Senegacnik, “Kako CBO izvaja transformacije SQL ukazov” (How CBO performs SQL transformations)

Joze Senegacnik, “Automatic Memory Management in Oracle 10g”

Cary Millsap, “Why You Can’t See Your Real Performance Problems”

Cary Millsap, “Profiling Oracle: How it Works”

Stefan Knecht, “Hot new features in 11g”

Alex Gorbachev, “RAC connection management”

Jurij Modic “Kakšen je tvoj načrt, Oracle?” (“What is your plan, Oracle?”)

Hmm…not bad, not bad at all!! (Well done, Joze !! ;-)

Regards,
Ales

About this site…

This portal is maintained by a small group of Oracle database administrators from Slovenia. For now, the membership is limited to invited members only. This means you can’t register to the site, nor post any content (this includes comments)…yeah, I know, it sucks, but we all have better things to do in our lifes than fighting spam bots. This policy might change in the future, until then, please accept our apology.

With best regards,
Ales