Thursday, July 19, 2012

ORA-27037 followed by "Error: 2: No such file or directory"

Recently I had a situation on one of production database, occasion errors in alaert log which looks like:
Mon Jul  2 19:53:53 2012
Errors in file /u01/DB/mydb/10.2.0/admin/DB/udump/db2_ora_25488.trc:
ORA-07445: exception encountered: core dump [kpofgi()+2144] [SIGSEGV] [unknown code] [0x000000000] [] []
Mon Jul  2 19:54:12 2012
Trace dumping is performing id=[cdmp_20120702195412]
Mon Jul  2 19:55:02 2012
Errors in file /u01/DB/mydb/10.2.0/admin/DB/bdump/db2_diag_6145.trc:
ORA-27037: Message 27037 not found; No message file for product=RDBMS, facility=ORA
Linux-ia64 Error: 2: No such file or directory
Additional information: 9
ORA-27037: Message 27037 not found; No message file for product=RDBMS, facility=ORA
Linux-ia64 Error: 2: No such file or directory
Additional information: 9
ORA-27037: Message 27037 not found; No message file for product=RDBMS, facility=ORA
Linux-ia64 Error: 2: No such file or directory
Additional information: 9
ORA-27037: Message 27037 not found; No message file for product=RDBMS, facility=ORA
Linux-ia64 Error: 2: No such file or directory
Additional information: 9
ORA-27037: Message 27037 not found; No message file for product=RDBMS, facility=ORA
Linux-ia64 Error: 2: No such file or directory
Additional information: 9
ORA-27037: Message 27037 not found; No message file for product=RDBMS, facility=ORA
Linux-ia64 Error: 2: No such file or directory
Additional information: 9
ORA-27037: Message 27037 not found; No message file for product=RDBMS, facility=
Mon Jul  2 19:57:03 2012
Completed checkpoint up to RBA [0x179c1.2.10], SCN: 21475188014
Mon Jul  2 19:59:54 2012
Incremental checkpoint up to RBA [0x179c1.e6.0], current log tail at RBA [0x179c1.2771.0]
Interesting was that many ORA-07445 on same database were placed "standalone" (with very same parameters as shown) and some are like shown example, following by other errors. After searching Internet haven't found a cause of such a behavior.

Because there were no other implications on database I left that case for better times.

And that time came very soon when one day, I was adding some commands in Linux crontab. Here is the interesting part (separate in two rows):
00,05,10,15,20,25,30,35,40,45,50,55 * * * * 
rm -f /u01/DB/mydb/10.2.0/admin/DB/udump/*.trc & rm -rf /u01/DB/mydb/10.2.0/admin/DB/bdump/cdmp* 
So every 5 minutes, crontab was deleting all trace files as well as cdump directories in shown directories. And that was it!

When happened that Oracle has a ORA which was creating trace file as well as dump directory entries and in the same moment crontab delete all of them, Oracle is left without files/directories in which it was wring data just moment ago.

Hope this helps someone.

Cheers!

Thursday, July 12, 2012

My Oracle Support Flash User Interface Set to Retire

On July 13, 2012, Oracle plans to upgrade the HTML interface with additional functionality. These additional functions will allow those users still remaining on the Flash-based interface to switch over to the HTML version. Although the Flash-based user interface will remain available for a brief period following the upgrade, Oracle encourages users to begin using the new HTML version sooner per the guidance below.

What to do?

If you use Oracle Configuration Manager, On Demand, CRM On Demand, or Taleo offerings:
  • Wait until after the July 13th upgrade to begin using the new HTML interface. In the mean time, continue to use the Flash version.
  • Your username and password will not change.
  • Confirm browser compatibility. Find the list of supported browsers at Article ID 1385682.1.
    Internet Explorer 6 (IE6) will no longer be supported.
Thanks to god this monster of flash interface on main official site will be terminated. Never happened again!

Cheers!

Sunday, July 8, 2012

Start Oracle BI 10g on Windows

This is not AYA story of startup scripts for Oracle BI 10g but a way how to enable services startup on Windows to be similar like one on Linux. It is more then known problem on any Windows OBI 10g installation that C:\OracleBI\oc4j_bi\bin\oc4j.cmd -start has to be started from command prompt (not as service) and leave that prompt open. Last characteristic, explicitly leads to have at least on opened RDP session ... and the worst of all leads to impossibility that this script is automatically started on server restart.

Another big problem in finding solution for mentioned problem is that this .cmd is calling pure java what makes all thing even harder to automatize. While trying find a solution I have tried several solutions (Java wrapper, Java service etc.) but they all was or unstable or missing some important features or not free.

The solution

Thanks to my colleague Joso Mrša who had similar problem with nginx on Windows, I was pointed to project called Windows Service Wrapper. With Windows Service Wrapper we have a way of properly starting and stopping OBI oc4j part of OBI.
  1. First you’ll need to download the latest exe, "winsw-1.9-bin.exe" at the time of writing, and rename it to something else. In mine case new name is myapp.exe. By renaming original file you are enabling future upgrades without having any other problem or configurations-just rename new .exe to myapp.exe and this overwrite old version with new one.
  2. In the same dir where myapp.exe is placed, create myapp.xml and put next content into it
    
      OBIcmd 
      OBIcmd 
      OBI oc4j start through service 
      C:\OracleBI\oc4j_bi\bin\oc4j.cmd 
      C:\OracleBI\ 
      roll 
       
        -start 
        -stop 
      
    
    
    This script assume that OBI_HOME is installed in default "C:\OracleBI" directory
  3. Execute the command
    myapp.exe install
    
    With this step you'll find new Windows service OBIcmd in list of services.
  4. Change it's start type to manual
  5. Change all other startup Oracle BI services to manual (if they were automatic), because they'll be started from other script
  6. If you do not have, create start_OBI.bat script as:
    @ECHO Order of starting resources:
    @ECHO    1. Oracle Java Host
    @ECHO    2. OC4J
    @ECHO    3. Oracle BI Server
    @ECHO    4. Oracle Presentation Services
    @ECHO    5. Oracle BI Scheduler (do not start it in my case, add missing call of service)
    
    NET START "Oracle BI Java Host"
    NET START "Obicmd"
    NET START "Oracle BI Server"
    NET START "Oracle BI Presentation Server"
    
    As you see in highlighted line, this is classic startup OBI Windows script where oc3j call is replaced with Windows Service Wrapper call.
  7. When you run script on stopped OBI and result is like
    Then your OBI has not been properly started.
    Notice, how OBIcmd is not started as well as Oracle BI EE OC4J
  8. . In most cases it is uncleanly shutdown previous version of OC4J which hang on port. Error in log is
    Error starting ORMI server port Address already in use: JVM_Bind.
  9. Create through Windows scheduler, new schedule which will call previously mentioned start_OBI.bat script on server startup
    Uncheck option "require user to be logged" which ensure that this script will run regardless user is logged or not.

The end

It is very convenient to create stop_OBI.bat on a similar way like start one. This script should be used for instant restart actions.
Hope this helps someone.

Cheers!

Monday, July 2, 2012

IE and password text box

Developing Apex applications, login page is unavoidable element for any site. This page is composed of three visible controls:
  1. Text item (where you place username)
  2. Password item (where you place password value)
  3. Button (which submits page)
But in all IE versions, regardless you define password item width in Apex, you cannot see the same size as above text item. Here is example of this problem in mine two apps:
There are plenty of discussions about this problem, which exists only in IE (6,7,8,9 versions) and not in any other browser.

The solution

I will not analyze the cause but how to avoid elegantly this problem, in all IE versions. Because the problem is more then famous, there are plenty of solutions but I find the most suitable this small java script code which should be placed in page definition Header and footer section:

Idea is to "adjust" size of password item to width od text item, after page is rendered, what works very nice and fast. Here is the result:

The End

This solution is generic whenever you have only one Text item and one password item on login page, what is really 99.99% of all situation that I saw. So hard codding this small part in your every Apex application is really must to have proper login page.
Hope this helps someone.

Cheers!