Thursday, April 6, 2017

ORA-01017 on RAC db

I was getting ORA-01017: invalid username/password; logon denied intermittently (Mostly random using JDBC connection pool but OCI too).
Now (6 months later ...) I found why ... listener was routing connection attempt to MGMTDB


Services Summary...
Service "-MGMTDBXDB" has 1 instance(s).
  Instance "-MGMTDB", status READY, has 1 handler(s) for this service...
Service "_mgmtdb" has 1 instance(s).
  Instance "-MGMTDB", status READY, has 1 handler(s) for this service...
Service "orac" has 2 instance(s).
  Instance "-MGMTDB", status READY, has 1 handler(s) for this service...  Instance "orac1", status READY, has 1 handler(s) for this service...
Service "oracXDB" has 1 instance(s).
  Instance "orac1", status READY, has 1 handler(s) for this service...



Now thinking back and issue during installation I didn't have -priv in hosts and that explains everything. And solution was simple
 alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.x)(PORT=22333))' scope=both;
 alter system set remote_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=x.x.x.x)(PORT=22333))' scope=both;


Now lsnrctl status listener_scan1 looks good
Services Summary...
Service "orac" has 1 instance(s).
  Instance "orac1", status READY, has 1 handler(s) for this service...
Service "oracXDB" has 1 instance(s).
  Instance "orac1", status READY, has 1 handler(s) for this service...



Or just
srvctl stop mgmtdb


And on top of that one can still get ORA-01017 in JDBC 12.1.0.2 without patch 24943518.

Monday, December 21, 2015

Oracle JDBC 12.1 bug



We were getting in a production when using batch statement execution

NestedThrowablesStackTrace:

java.lang.ArrayIndexOutOfBoundsException: -1 at oracle.jdbc.driver.OraclePreparedStatement.setupDbaBindBuffers(OraclePreparedStatement.java:3528)

at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:3046)

at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:12194)

at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:246)

Well it seems it is bug in Oracle JDBC 12.1 and searching Oracle Support revealed there is a patch available Oracle Patch 19002423.


JDBC patches are not part of Oracle DB patches neither are included in Oracle DB Client patches. For example Oracle DB bundle patch 10 doesn't include this patch.





Wednesday, July 3, 2013

Dell FusionIO Centos 6


Recently I got in touch with Dell R910 with FusionIO drive. I needed to backup its content. Thus I booted CentOs live CD 6.2. But no fioX device found in /dev/fio* ( ls /dev/fio )

Card is present

lspci | grep -i fusion

42:00.0 Mass storage controller: Fusion-io 2001 (rev 04)
45:00.0 Mass storage controller: Fusion-io 2001 (rev 04)

Dell has this nice page http://dell.fusionio.com/ where binaries are available.

Software Source
iomemory-vsl-3.2.3.950-1.0.el6.src.rpm

Software Binaries
iomemory-vsl-2.6.32-131.0.15.el6.x86_64-3.2.3.950-1.0.el6.x86_64.rpm
iomemory-vsl-2.6.32-220.el6.x86_64-3.2.3.950-1.0.el6.x86_64.rpm
iomemory-vsl-2.6.32-279.el6.x86_64-3.2.3.950-1.0.el6.x86_64.rpm
iomemory-vsl-2.6.32-71.el6.x86_64-3.2.3.950-1.0.el6.x86_64.rpm

Utilities
fio-common-3.2.3.950-1.0.el6.x86_64.rpm
fio-sysvinit-3.2.3.950-1.0.el6.x86_64.rpm
fio-util-3.2.3.950-1.0.el6.x86_64.rpm
lib32vsl-3.2.3.950-1.el6.i386.rpm
libvsl-3.2.3.950-1.0.el6.x86_64.rpm

Firmware
dell_iodrive_3.2.3-20130605.fff
fio-firmware-dell_iodrive-3.2.3.20130605-1.noarch.rpm

I just grab iomemory-vsl-2.6.32-220.el6.x86_64-3.2.3.950-1.0.el6.x86_64.rpm and installed it.

Then modprobe iomemory-vsl

Finally

ls /dev/fio* show
/dev/fiob

thanks http://serverascode.com/2012/05/23/installing-ibm-fusionio-rhel_centos6.html

Monday, October 15, 2012

SSLPeerUnverifiedException: peer not authenticated

Curious why are you getting this exception?

Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)

Enable debug :)
-Djavax.net.debug=all

Sunday, September 2, 2012

XMLSERIALIZE returns value truncated to 2000/4000 char

Seems like using XMLSERIALIZE or getClobVal on a XMLTYPE column stored as BINARY XML returns value truncated to 2000/4000 char without any error.
Seems like the only way to retrieve the data is to retrieve XMLTYPE using JDBC getObject which returns oracle.xdb.XMLType.
It is good in its way. It forces people to use more effective way of XML retrieval.

Monday, March 19, 2012

Getting ORA-19102 on any XMLTABLE

Getting ORA-19102 on any XMLTABLE? Try putting in SELECT /*+ CURSOR_SHARING_EXACT */  ...
Caused by Oracle parameter CURSOR_SHARING = FORCE.

Tuesday, January 24, 2012

Enable "Dynamic service registration" with Oracle TNS Listener

-- shows if it is enabled
sqlplus / as sysdba
show parameter local_listener

alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1521))'
alter system register;

DBMS_XMLSCHEMA.registerSchema ORA-19046: Out-of-line table cannot be shared by two top-level tables.

During DBMS_XMLSCHEMA.registerSchema(?, ?, TRUE , TRUE, FALSE, TRUE, FALSE, ?, 2, 0) running Oracle DB 11.2.0.3 (.2) an error occurred:

ORA-19046: Out-of-line table cannot be shared by two top-level tables.
ORA-06512: at "XDB.DBMS_XMLSCHEMA_INT", line 3
ORA-06512: at "XDB.DBMS_XMLSCHEMA", line 14
ORA-06512: at line 1
No issue on Oracle DB 11.2.0.1

ALTER SESSION SET events='31098 trace name context forever'; used for XMLDB tracing didn't show anything meaning full.

Searching Metalink I found that  gentables=TURE might be causing an issue.  Changing to DBMS_XMLSCHEMA.registerSchema(?, ?, TRUE , TRUE, FALSE, FALSE, FALSE, ?, 2, 0) fixed it.
Using XMLTYPE example_row STORE AS OBJECT RELATIONAL XMLSCHEMA I don't need those tables.

DBMS_XMLSCHEMA.REGISTERSCHEMA(
    schemaurl        IN  VARCHAR2,
    schemadoc        IN  VARCHAR2,
    local            IN  BOOLEAN := TRUE,
    gentypes         IN  BOOLEAN := TRUE,
    genbean          IN  BOOLEAN := FALSE,
    gentables        IN  BOOLEAN := TRUE,
    force            IN  BOOLEAN := FALSE,
    owner            IN  VARCHAR2 := NULL,
    enablehierarchy  IN  PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS,
    options          IN  PLS_INTEGER := 0);

24/Feb/2012 Update: Getting error when trying to insert data:
ORA-21700: object does not exist or is marked for delete
ORA-06512: at "SYS.XMLTYPE", line 0
ORA-06512: at line 1

Thus returning back to  gentables := TRUE, and adding xdb:defaultTable="" into schema definition as recommended in  http://www.oracle.com/technetwork/database/features/xmldb/downloads/oow2010-complex-xml-schemas-176089.pdf
It seems "STORE AS OBJECT RELATIONAL" is only good for simple schemas when you really need super fast access to query underlying data. "store AS BINARY XML" is not available in 10g. See http://www.liberidu.com/blog/?p=203 for available storage options.