"ORA-00904:列名が無効です" のエラーが出るのは、 oracle JVM が正しくインストールされていないときです。 oracle JVM を手動でインストールしてください。
cd $ORACLE_HOME/javavm/install svrmgrl SVRMGR> connect internal SVRMGR> @initjvm
![]() |
![]() |
ユーザを scott/tiger と仮定します。
SQL> exec dbms_java.grant_permission( 'SCOTT', 'oracle.aurora.security.JServerPermission','Memory.Call',NULL);
MAX_MEM_SIZE が必要とするメモリのバイト数です。 setMaxMemorySize(MAX_MEM_SIZE) で変更します。 デフォルトは、134217728(128M) のようですので、ほぼ倍にしてみましょう。 最大ヒープサイズは、、getMaxMemorySize() で取得できます。 setMaxMemorySize() は、 はじめに call されるメソッドの最初の実行文としてください。
import oracle.*; static final long DEF_MEM_SIZE = 128 * 1024 * 1024; static final long MAX_MEM_SIZE = DEF_MEM_SIZE *2 ; oracle.aurora.vm.OracleRuntime.setMaxMemorySize(MAX_MEM_SIZE);
![]() |
![]() |
ncomp は、次のような手順で処理をします。
まず、以下の権限が必要です。
なお、java のバージョンは、以下が必須です。
java version "1.2.2" Solaris VM (build Solaris_JDK_1.2.2_07, native threads, sunwjit)
817nagano-7] statusnc -u scott/tiger ch14app.jar # # this list is produced by query # select status, class_name from jaccelerator$status; # NEED_NCOMPING jvm/ch14/NComp NEED_NCOMPING jvm/ch14/
![]() |
![]() |
miffy{ora80664}37: svrmgrl Oracle Server Manager Release 3.0.6.0.0 - Production (c) Copyright 1999, Oracle Corporation. All Rights Reserved. /usr/lib/pa20_64/dld.sl: Unable to find library 'libobk.sl'. /usr/lib/pa20_64/dld.sl: Unable to find library 'libobk.sl'. ORA-12547: TNS:lost contact SVRMGR>
これは、svrmgrl が oracle を起動するときに、oracle が使う共用ライブラリが見つからないために出るエラーです。
64Bit 版の場合は、LD_LIBRARY_PATH を以下に設定します。
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib64
![]() |
![]() |
> java Sel java.sql.SQLException: ORA-01034: ORACLE not available ORA-27123: unable to attach to shared memory segment SVR4 Error: 13: Permission denied
oracle の実行モジュールのパーミッションは "-rwsr-s--x" でなければなりませんが、 おそらく "s" ビットが立っていない状態で、 oracle インストールユーザ以外で実行したためです。 以下のコマンドでパーミッションを変えてください。
> chmod ug+s oracle
セットユーザ ID ビット、セットグループ ID ビットは、 cp コマンドでコピーしてもクリアされます。
![]() |
![]() |
インストーラの内部では、oraInventory を作成するために mkdir("oraInventory",0777) システムコールを呼びます。 mkdir() システムコールは、第二引数であるモードから現在の umask の値を引いた値を、作成するディレクトリのパーミッションとします。 通常 umask は 022 ですので作成されるディレクトリのパーミッションは、 0777 - 022 = 0755 (drwxr-xr-x) となります。
同一グループでそのディレクトリを共有したい場合は umask を 0 にすれば、 0777(drwxrwxrwx) のパーミッションとして作成します。
![]() |
![]() |