2015-02-26 6 views
0

J'appelle une classe java de PLSQL Dev. Mon Logger.java appelle le FileHandler avec une chaîne "C: \ Logs \ mylog.txt"FileHandler provoquant IOException à FileKey

fileHndlr = new FileHandler(logFileName, false); 

et le résultat est:

Exception in thread "Root Thread" java.lang.Error: java.io.IOException: sjonfile_fileinfo fais to get fileinfo 
    at sun.nio.ch.FileKey.create(FileKey.java:41) 
    at sun.nio.ch.FileChannelImpl$SharedFileLockTable.<init>(FileChannelImpl.java:1037) 
    at sun.nio.ch.FileChannelImpl.fileLockTable(FileChannelImpl.java:806) 
    at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:867) 
    at java.nio.channels.FileChannel.tryLock(FileChannel.java:962) 
    at java.util.logging.FileHandler.openFiles(FileHandler.java:394) 
    at java.util.logging.FileHandler.<init>(FileHandler.java:268) 
    at xxx.logger.Logger.logSetup(Logger.java:194) 
Caused by: java.io.IOException: sjonfile_fileinfo fais to get fileinfo 
    at sun.nio.ch.FileKey.init(Native Method) 
    at sun.nio.ch.FileKey.create(FileKey.java:39) 
    ... 9 more 

semble que certains droits sont manquants pour créer le fichier, ce qui besoin d'être vérifié?

MISE À JOUR:

nous avons installé ProcessMonitor au serveur sur lequel les opérations de fichiers qui se passe et nous avons trouvé deux événements suspects:

1) TAMPON erreur DÉPASSÉ à QueryAllInformationFile

Date & Time: 2015.03.02. 9:23:14 
Event Class: File System 
Operation: QueryAllInformationFile 
Result: BUFFER OVERFLOW 
Path: C:\Logs\...\filename.lck 
TID: 2708 
Duration: 0.0000138 
CreationTime: 2015.02.25. 15:49:13 
LastAccessTime: 2015.02.25. 15:49:13 
LastWriteTime: 2015.03.02. 9:23:14 
ChangeTime: 2015.03.02. 9:23:14 
FileAttributes: A 
AllocationSize: 0 
EndOfFile: 0 
NumberOfLinks: 1 
DeletePending: False 
Directory: False 
IndexNumber: 0x1500000007d793 
EaSize: 0 
Access: Generic Write, Read Attributes 
Position: 0 
Mode: Synchronous IO Non-Alert 
AlignmentRequirement: Long 

2) SHARING Erreur de VIOLATION lors de l'opération CreateFile

Date & Time: 2015.03.02. 9:23:20 
Event Class: File System 
Operation: CreateFile 
Result: SHARING VIOLATION 
Path: C:\Logs\...\filename.lck 
TID: 2708 
Duration: 0.0000284 
Desired Access: Read Attributes, Delete 
Disposition: Open 
Options: Non-Directory File, Open Reparse Point 
Attributes: n/a 
ShareMode: Read, Write, Delete 
AllocationSize: n/a 
+0

Je suppose que continue la décharge de la pile - ce qui se passe lorsque ce message est produit: « sjonfile_fileinfo pour obtenir fileinfo: fais »? – laune

+0

bien j'ai trouvé le sun.nio.ch.FileKey.class au jdk: c: \ Java \ jdk1.7.0_71 \ jre \ lib \ rt.jar \ sun \ nio \ ch \ FileKey.class mais la chaîne "sjonfile_fileinfo "n'est pas encore trouvé. Toute idée où chercher? – szokea

+0

La décharge de pile se termine comme ceci? Rien de plus? – laune

Répondre

0

actions suivantes doivent être exécutées avec l'utilisateur sysdba:

GRANT READ,WRITE ON DIRECTORY userDirectory TO userSchema; 

Execute dbms_java.grant_permission('userSchema', 'java.io.FilePermission', 'userDirectory/*', 'read,write,execute,delete');