вопрос по java в Oracle

javaquestion
Дата: 27.10.2015 13:30:37
Имеем pl/sql процедуру , которую выполняем подключаясь dedicated - все работает, в shared - ошибка java.sql.SQLException: ORA-29532: вызов Java прерван неустановленным исключением Java: java.io.IOException: Unable to make shared memory file mapping.

Почему?

 CREATE OR REPLACE PACKAGE test.test_pack AS
PROCEDURE test_shared(s in varchar2);
END;
/
CREATE OR REPLACE PACKAGE BODY test.test_pack AS

PROCEDURE test_shared(s in varchar2)
AS LANGUAGE JAVA
NAME 'TestShared.testproc(java.lang.String';

END;
/

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED VX."TestShared" AS
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;

public class TestShared {
  public static void testproc(String s) throws IOException,SQLException {
          
      RandomAccessFile raf = new RandomAccessFile("/tmp/test.txt", "r");
      FileChannel fc = raf.getChannel();
      MappedByteBuffer buffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); // <----- здесь исключение

      buffer.clear();
      buffer.flip();
          
  }
};
а зачем shared?
Дата: 27.10.2015 13:51:08
javaquestion,

shared server выделяет память в shared pool. она перемещаемая, а маппинг требует фиксированной области для доступа из нескольких потоков. вместо read_only попробуй режим private.
javaquestion
Дата: 27.10.2015 14:18:35
java.nio.channels.NonWritableChannelException - для режима 'r'
java.io.IOException: Unable to make shared memory file mapping - для режима 'rw'
javaquestion
Дата: 27.10.2015 16:52:50
а зачем shared?,

На самом деле..все нормально что из внутри процесса, что из разных процессов читает MappedByteBuffer(причем в режиме READ_WRITE)...вопрос, почему в оракле в режиме подключения shared такого не происходит.