前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jdbc连接ASM报错ORA-15000:command disallowed by current instance type

jdbc连接ASM报错ORA-15000:command disallowed by current instance type

作者头像
Yunjie Ge
发布2024-06-19 14:27:49
550
发布2024-06-19 14:27:49
举报
文章被收录于专栏:数据库与编程数据库与编程

APPLIES TO:JDBC - Version 11.2.0.3.0 and later Information in this document applies to any platform.

SYMPTOMS

JDBC connection can't be created due to exception "ORA-15000: command disallowed by current instance type" when one java client try to connect Oracle ASM instance via JDBC string.

jdbc:oracle:thin:@(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=<ASM_HOST>)(PORT=<PORT>)) (CONNECT_DATA= (SERVICE_NAME=<ASM_SERVICE_NAME>) ) )

Exception in thread "main" java .sql.SQLException: ORA-15000: command disallowed by current instance type at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:441) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:436) at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:546) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252) at oracle.jdbc.driver.T4CTTIoauthenticate.doOSESSKEY(T4CTTIoauthenticate.java:519) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:615)

CAUSE

ASM instance connection required "/as sysdba"

The asm instance does not have a data file, so the user's password will only be stored in the password file. When connecting to asm, user must connect through a password file, and the password file connection must specify its system role ("/as sysdba")

SOLUTION

Please refer below sample code to setup "/as sysdba" when creating JDBC connection to ASM instance.

import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.*; // create one DataSource object OracleDataSource ods = new OracleDataSource(); // setup 3 DB properties: user, password and sysdba java.util.Properties prop = new java.util.Properties(); prop.put("user", "sys"); prop.put("password", ""); prop.put("internal_logon", "sysdba"); ods.setConnectionProperties(prop); // setup jdbc URL String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=asm.host.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=+ASM)))"; ods.setURL(url); // create connection Connection conn = ods.getConnection();

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 山东Oracle用户组 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • APPLIES TO:JDBC - Version 11.2.0.3.0 and later Information in this document applies to any platform.
  • SYMPTOMS
  • CAUSE
  • SOLUTION
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档