Hatena::ブログ(Diary)

ablog このページをアンテナに追加 RSSフィード Twitter

2016-02-06

GNOME のウィジットが表示されなくなった

f:id:yohei-a:20160206202759p:image:w640

事象

  • ftrace を使っていたら不安定になったので、再起動したら GNOME のウィジット(時刻表示の近くの電源、ワイアレスネットワークなどが表示されているところ)が表示されなくなった。

対処

  • ~/.gconf/apps/panel/general を削除する

参考

Oracle GoldenGate 12.1.2.0.0 を使ってみる

環境

$ cat /etc/oracle-release 
Oracle Linux Server release 6.6
$ uname -r
2.6.39-400.17.1.el6uek.x86_64

ダウンロード


インストール

  • ファイルを結合する
$ cat ODI-12c-Getting-Started.7z.001 ODI-12c-Getting-Started.7z.002 ODI-12c-Getting-Started.7z.003 ODI-12c-Getting-Started.7z.004 > ODI-12c-Getting-Started.7z 
$ 7z e ODI-12c-Getting-Started.7z
$ ls -l
total 23226864
-rw-r----- 1 yazekats yazekats    1628354 Feb  6 11:27 odi-12c-getstart-vm-install-guide-2401840.pdf
-rw-rw-r-- 1 yazekats yazekats 7880050911 Feb  6 10:48 ODI-12c-Getting-Started.7z
-rw-r----- 1 yazekats yazekats 2147483648 Oct 28 14:33 ODI-12c-Getting-Started.7z.001
-rw-r----- 1 yazekats yazekats 2147483648 Oct 31 15:06 ODI-12c-Getting-Started.7z.002
-rw-r----- 1 yazekats yazekats 2147483648 Oct 31 16:02 ODI-12c-Getting-Started.7z.003
-rw-r----- 1 yazekats yazekats 1437599967 Oct 31 16:52 ODI-12c-Getting-Started.7z.004
-rw-rw-r-- 1 yazekats yazekats 8022525952 Oct 22 03:42 ODI 12c Getting Started VM.ova ★
  • Oracle VM VirtualBox Manager を起動する
  • メニューの [File]-[Import Appliance] で "ODI 12c Getting Started VM.ova" を選択し、ウイザードに従ってインポートする。

設定

  • "ODI 12c Getting Started VM" の [Settings] を選択し、以下を設定する。
    • [System]-[Memory]: 8192MB
    • [Shared Folders]
      • Folder Path: /home/yazekats/ODIshared
      • Folder Name: ODIshared
      • Auto-mount: チェック
    • [Network]-[Adaptor 2]
      • Attached to: Host-only Adaptor
      • Name: vboxnet0 ※作っている名前を選択する

起動

  • "ODI 12c Getting Started VM" を選択し、[Start] を押下する。

f:id:yohei-a:20160206152050p:image:w640

[oracle@ODIGettingStarted ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sat Feb 6 01:34:29 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 

自動起動されているので、

[oracle@ODIGettingStarted ~]$ ps -ef|grep [g]g
oracle    9933  9923  0 01:30 ?        00:00:00 /u01/Middleware/OGG_Source/ggcmd PARAMFILE /u01/Middleware/OGG_Source/dirprm/jagent.prm REPORTFILE /u01/Middleware/OGG_Source/dirrpt/JAGENT.rpt PROCESSID JAGENT USESUBDIRS
oracle    9966  9956  0 01:30 ?        00:00:00 /u01/Middleware/OGG_Target/ggcmd PARAMFILE /u01/Middleware/OGG_Target/dirprm/jagent.prm REPORTFILE /u01/Middleware/OGG_Target/dirrpt/JAGENT.rpt PROCESSID JAGENT USESUBDIRS

f:id:yohei-a:20160206153929p:image:w640


その他

  • 共有フォルダをマウントする
[root@ODIGettingStarted ~]# cd /home/oracle/
[root@ODIGettingStarted oracle]# bash ./mountshared.sh 
[root@ODIGettingStarted oracle]# mount
/dev/mapper/vg_odigettingstarted-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sdb on /u01 type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
ODIshared on /media/sf_ODIshared type vboxsf (gid=501,rw)
  • Oracle Database をアーカイブログモードに変更する。
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
  • Oracle Database でサプリメンタルロギングを有効にする。
SQL> alter database add supplemental log data;
create user scott identified by tiger
default tablespace users
temporary tablespace temp;
grant dba to scott;
conn scott/tiger
create table scott.t1 (
c1 number(10) constraint pk_t1 primary key,
c2 varchar2(10),
c3 varchar2(10)
) tablespace users;
  • OGG で Extract を設定する
> start manager
Manager started.

> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
JAGENT      STOPPED                                           

> add extract ext1, tranlog, begin now
EXTRACT added.

> add exttrail /u01/Middleware/OGG_Source/dirdat/lt, extract ext1
EXTTRAIL added.

> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
JAGENT      STOPPED                                           
EXTRACT     STOPPED     EXT1        00:00:00      00:08:19    

> edit params ext1 
--extract group--
extract ext1
--connection to database--
userid scott, password tiger
--hostname and port for trail--
rmthost ODIGettingStarted, mgrport 7010
--path and name for trail--
exttrail /u01/Middleware/OGG_Source/dirdat
--DML
table scott.*;

> start extract ext1
Sending START request to MANAGER ...
EXTRACT EXT1 starting
  • 伝播対象表を更新する。
$ sqlplus /nolog
SQL> conn scott/tiger
SQL> begin
	for i in 1..100000 loop
		insert into t1 (c1,c2,c3) values(i,i,i);
                commit;
	end loop;
end;
/
  • ggsci コマンドを実行する。
[oracle@ODIGettingStarted OGG_Source]$ ./ggsci
  • manager プロセスおよび子プロセスに strace をしかける。
[oracle@ODIGettingStarted strace]$ ps -elf|grep ./[m]gr
0 S oracle    8243     1  0  80   0 - 168275 poll_s 20:10 ?       00:00:33 ./mgr PARAMFILE /u01/Middleware/OGG_Source/dirprm/mgr.prm REPORTFILE /u01/Middleware/OGG_Source/dirrpt/MGR.rpt PROCESSID MGR USESUBDIRS
[oracle@ODIGettingStarted strace]$ strace -ff -tt -o strace -p 8243
  • extract プロセスを開始する
> start extrace ext1
  • 表にデータを insert する。
$ sqlplus /nolog
SQL> conn scott/tiger
SQL> begin
	for i in 1..100000 loop
		insert into t1 (c1,c2,c3) values(i,i,i);
                commit;
	end loop;
end;
/
  • Trail を書いている PID を調べて、
[oracle@ODIGettingStarted dirdat]$ lsof /u01/Middleware/OGG_Source/dirdat/lt000000 
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
extract 12478 oracle   21uW  REG   8,16 15085996 408130 lt000000
[oracle@ODIGettingStarted strace]$ grep open  strace.12478
(中略)
23:29:16.214482 open("/u01/Middleware/OGG_Source/dirdat/lt000000", O_RDWR|O_CREAT|O_TRUNC, 0666) = 21★ ↑Trail(FD番号:21) を作成している
(中略)
23:29:53.204898 open("/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_02_06/o1_mf_1_292_ccfl1sqw_.arc", O_RDONLY|O_DIRECT) = 22 
★ ↑アーカイブログ(FD番号:22)
23:29:54.186174 open("/u01/app/oracle/oradata/ORCL/clone_o1_mf_1_91zfcp2o_.log", O_RDONLY|O_DIRECT) = 20 
★ ↑REDOログ(FD番号:20)
23:29:55.115810 open("/u01/app/oracle/oradata/ORCL/clone_o1_mf_2_91zfcqxl_.log", O_RDONLY|O_DIRECT) = 22 
★ ↑REDOログ(FD番号:22)
    • Trail への書込を見てみる
23:29:16.214369 open("/u01/Middleware/OGG_Source/dirdat/lt000000", O_RDWR) = -1 ENOENT (No such file or directory)
★ ↑Trail がないので、
23:29:16.214440 umask(027)              = 027
23:29:16.214482 open("/u01/Middleware/OGG_Source/dirdat/lt000000", O_RDWR|O_CREAT|O_TRUNC, 0666) = 21
★ ↑Trail を作成している
23:29:16.214584 umask(027)              = 027
23:29:16.214843 fcntl(21, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
★ ↑Trail に fcntl で F_WRLCK ロックをかけている
23:29:16.214921 lseek(21, 0, SEEK_SET)  = 0
(中略)
23:29:16.216003 write(21, "F\200\5\2470\0\3%0\0\0\10GG\r\nTL\n\r1\0\0\2\0\0042\0\0\4 \0"..., 1447) = 1447
★ ↑Trail に書いている
23:29:16.216072 fsync(21) = 0
★ ↑fsync で同期している
    • ロックをかけているのはここだけ
[oracle@ODIGettingStarted strace]$ grep 'fcntl(21,' strace.12478 
23:29:15.268861 fcntl(21, F_GETFD) = -1 EBADF (Bad file descriptor)
23:29:16.214843 fcntl(21, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
    • Trail(FD番号:21)に対する操作の流れを見てみる
[oracle@ODIGettingStarted strace]$ perl -nle  '/\(21(,|\))/ and print' strace.12478 
(中略)
23:29:16.214843 fcntl(21, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
23:29:16.214921 lseek(21, 0, SEEK_SET)  = 0
23:29:16.214969 lseek(21, 0, SEEK_SET)  = 0
23:29:16.215010 read(21, "", 32768)     = 0
23:29:16.215068 lseek(21, 0, SEEK_SET)  = 0
23:29:16.215111 fstat(21, {st_mode=S_IFREG|0640, st_size=0, ...}) = 0
23:29:16.215161 lseek(21, 0, SEEK_SET)  = 0
23:29:16.215201 lseek(21, 0, SEEK_SET)  = 0
23:29:16.216003 write(21, "F\200\5\2470\0\3%0\0\0\10GG\r\nTL\n\r1\0\0\2\0\0042\0\0\4 \0"..., 1447) = 1447
23:29:16.216072 fsync(21) = 0
23:29:27.083879 fsync(21) = 0
23:29:37.252761 fsync(21) = 0
23:29:40.547552 lseek(21, 0, SEEK_CUR)  = 1447
23:29:40.547674 lseek(21, 0, SEEK_SET)  = 0
23:29:40.547726 write(21, "F\0\5\2470\0\3%0\0\0\10GG\r\nTL\n\r1\0\0\2\0\0042\0\0\4 \0"..., 1447) = 1447
23:29:40.548143 lseek(21, 0, SEEK_SET)  = 0
23:29:40.548197 read(21, "F\0\5\2470\0\3%0\0\0\10GG\r\nTL\n\r1\0\0\2\0\0042\0\0\4 \0"..., 32768) = 1447
23:29:40.548284 write(21, "G\1\0\216H\0\0+E\4\0A\0 \5\377\2\362QY\375\t\2\300\0\0\0\0\0\10t\224"..., 142) = 142
23:29:40.560462 write(21, "G\1\0\217H\0\0+E\4\0A\0 \5\377\2\362QY\375\t\2\300\0\0\0\0\0\10w\350"..., 32768) = 32768
(中略)
23:29:46.406235 write(21, "95739106\0\0\0104.7.7553Z\1\0\226G\1\0\227H\0\0+E"..., 32768) = 32768
23:29:47.421902 write(21, "\0\227G\1\0\227H\0\0+E\4\0A\0(\5\377\2\362QY\375d\220@\0\0\0\0\2\325"..., 6341) = 6341
23:29:47.421976 fsync(21) = 0
23:29:54.208681 write(21, "G\1\0\226H\0\0+E\4\0A\0(\5\377\2\362QY\375d\220@\0\0\0\0\0\0\4\20"..., 32768) = 32768
23:29:54.217969 write(21, "\0\0\3\212\310\0\0\1%\3R\0\0\0\1SCOTT.T1\0D\0\0(\0\0\0\n"..., 32768) = 32768
(中略)
23:29:55.370382 write(21, "\0\1L\0\0\00796908456\0\0\n5.29.10099Z\1\0\230G"..., 32768) = 32768
23:29:56.383818 write(21, "(\5\377\2\362QY\375\355\344\200\0\0\0\0\0\304\312\24\0\0\1&\3R\0\0\0\1SCO"..., 16194) = 16194
23:29:58.416003 fsync(21) = 0
23:30:08.900283 fsync(21)               = 0
23:30:20.083283 fsync(21) = 0
23:30:30.757213 fsync(21) = 0
23:30:40.913835 fsync(21) = 0
23:30:51.584558 fsync(21)               = 0
23:31:01.755998 fsync(21) = 0
  • NFSでやってみる
[root@ODIGettingStarted ~]# vi /etc/exports 
/u01/Middleware/OGG_Source/dirdat/ ODIGettingStarted(rw,no_root_squash)
[root@ODIGettingStarted ~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Stopping RPC idmapd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
[root@ODIGettingStarted ~]# service nfslock start
Starting NFS statd:                                        [  OK  ]
[root@ODIGettingStarted ~]# exportfs
/u01/Middleware/OGG_Source/dirdat
		localhost

[root@ODIGettingStarted nfs]# vi /etc/fstab
(中略)
ODIGettingStarted:/u01/Middleware/OGG_Source/dirdat /mnt/nfs nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=600
↑追記
[root@ODIGettingStarted nfs]# mount -a
[root@ODIGettingStarted nfs]# mount
ODIGettingStarted:/u01/Middleware/OGG_Source/dirdat on /mnt/nfs type nfs (rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=600,vers=4,addr=127.0.0.1,clientaddr=127.0.0.1)
  • Trail の出力先を NFS に変える
$ vi /u01/Middleware/OGG_Source/dirprm/ext1.prm
--extract group--
extract ext1
--connection to database--
userid scott, password tiger
--hostname and port for trail--
rmthost ODIGettingStarted, mgrport 7010
--path and name for trail--
--exttrail /u01/Middleware/OGG_Source/dirdat/lt
exttrail /mnt/nfs/lt
--DML
table scott.*;
ext1.prm (END) 
$ ./ggsci
> add exttrail /mnt/nfs/lt, extract ext1                             
EXTTRAIL added.

NFS にしてもシステムコールの傾向はローカルファイルシステムと同じ(OGG から見たら VFS にあるただのファイルなので想定通り)。

[oracle@ODIGettingStarted strace]$ less strace.14020 
(中略)
00:54:06.674232 open("/mnt/nfs/lt000002", O_RDWR) = -1 ENOENT (No such file or directory)
★ ↑Trail がないので、
00:54:06.674279 umask(027)              = 027
00:54:06.674309 open("/mnt/nfs/lt000002", O_RDWR|O_CREAT|O_TRUNC, 0666) = 21
★ ↑Trail を作成している
00:54:06.676110 umask(027)              = 027
00:54:06.676141 fcntl(21, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
★ ↑Trail に fcntl で書込みロック(F_WRLCK)でファイルの先頭から末尾までロックをかけている。書込みロックは一つのプロセスしか保持できない。
00:54:06.676450 lseek(21, 0, SEEK_SET)  = 0
00:54:06.676486 lseek(21, 0, SEEK_SET)  = 0
00:54:06.676517 read(21, "", 32768)     = 0
00:54:06.676736 lseek(21, 0, SEEK_SET)  = 0
00:54:06.676770 fstat(21, {st_mode=S_IFREG|0640, st_size=0, ...}) = 0
00:54:06.676811 lseek(21, 0, SEEK_SET)  = 0
00:54:06.676840 lseek(21, 0, SEEK_SET)  = 0
00:54:06.676895 write(3, "\n***********************************************************************\n**                     Run Time Messages                             **\n***********************************************************************\n\n", 218) = 218
00:54:06.677063 write(21, "F\200\6\3100\0\3\f0\0\0\10GG\r\nTL\n\r1\0\0\2\0\0042\0\0\4 \0\0\0003\0\0\10\2\362Q[+\27\233g4\0\0007\0005uri:ODIGettingStarted::u01:Middleware:OGG_Source:EXT16\0\0\23\0\21/mnt/nfs/lt0000027\0\0\1\0018\0\0\4\0\0\0\0029\377\0\10\0\0\0\0\0\0\0\0:\0\0\201\0079691549\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\377\0\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<\0\0\10\2\362QY\375\355\344\200=\377\0\10\0\0\0\0\0\0\0\0>\0\0\201\0079695716\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\377\0\10\0\0\0\0\0\0\0\0@\377\0\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\377\0\10\0\0\0\0\0\0\0\0B\0\0003\0\0,............................................\0\0\0\0001\0\0z0\0\0\7\0\5Linux1\0\0\23\0\21ODIGettingStarted2\0\0\37\0\0352.6.39-400.17.1.el6uek.x86_643\0\0%\0##1 SMP Fri Feb 22 18:16:18 PST 20134\0\0\10\0\6x86_642\0\1h0\0\0\2\0\0071\0\0\6\0\4ORCL2\0\0\6\0\4orcl3\0\0\4\0\0\0\0004\0\0\2\0\v5\0\0\2\0\0026\0\0\347\0\345Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production\nPL/SQL Release 11.2.0.4.0 - Production\nCORE\t11.2.0.4.0\tProduction\nTNS for Linux: Version 11.2.0.4.0 - Production\nNLSRTL Version 11.2.0.4.0 - Production\n7\0\0\4@\0\0\0008\0\0\f\0\n11.2.0.4.09\0\0\4\0\0\0\1:\0\0\2\0\0;\0\0\4\0\0\0\1<\0\0\24\0\0\0\20\24\24\24\24\24\24\24\24\24\24\24\24\21\24\24\24=\0\0\5\0\3GMT3\0\0|0\0\0\6\0\4EXT11\0\0\2\0\0032\0\0\2\0\f3\0\0\2\0\0014\0\0\2\0\0025\0\0\2\0\0006\0\0\2\0\0007\0\0J\0HVersion 12.1.2.0.0 17185003 OGGCORE_12.1.2.0.0_PLATFORMS_130924.1316_FBO4\0\1B0\0\0\4\0\0\0\0011\0\0\201\0079691549\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0002\0\0\0202\0\0\f\0\n9.18.100893\0\0\201\0079691549\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0004\0\0\f\0\n9.18.100895\0\0\10\2\362QY\375\355\344\200Z\200\6\310G\1\0;H\0\0#E\0\0A\0\0\226\0\2\362Q[+\27p!\0\0\0\0\0\0\0\0\0\0\0\0\3R\0\0\0\0\0T\0\0\10N\0\0\4EXT1Z\1\0;", 1795) = 1795
00:54:06.677382 fsync(21) = 0
(中略)
00:54:53.441815 lseek(21, 0, SEEK_CUR)  = 1795
00:54:53.441853 lseek(21, 0, SEEK_SET)  = 0
00:54:53.441900 write(21, "F\0\6\3100\0\3\f0\0\0\10GG\r\nTL\n\r1\0\0\2\0\0042\0\0\4 \0\0\0003\0\0\10\2\362Q[+\27\233g4\0\0007\0005uri:ODIGettingStarted::u01:Middleware:OGG_Source:EXT16\0\0\23\0\21/mnt/nfs/lt0000027\0\0\1\0018\0\0\4\0\0\0\0029\377\0\10\0\0\0\0\0\0\0\0:\0\0\201\0079695988\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0;\377\0\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0<\0\0\10\2\362Q[-\3133\0=\377\0\10\0\0\0\0\0\0\0\0>\0\0\201\0079695716\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?\377\0\10\0\0\0\0\0\0\0\0@\377\0\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0A\377\0\10\0\0\0\0\0\0\0\0B\0\0003\0\0,............................................\0\0\0\0001\0\0z0\0\0\7\0\5Linux1\0\0\23\0\21ODIGettingStarted2\0\0\37\0\0352.6.39-400.17.1.el6uek.x86_643\0\0%\0##1 SMP Fri Feb 22 18:16:18 PST 20134\0\0\10\0\6x86_642\0\1h0\0\0\2\0\0071\0\0\6\0\4ORCL2\0\0\6\0\4orcl3\0\0\4\0\0\0\0004\0\0\2\0\v5\0\0\2\0\0026\0\0\347\0\345Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production\nPL/SQL Release 11.2.0.4.0 - Production\nCORE\t11.2.0.4.0\tProduction\nTNS for Linux: Version 11.2.0.4.0 - Production\nNLSRTL Version 11.2.0.4.0 - Production\n7\0\0\4@\0\0\0008\0\0\f\0\n11.2.0.4.09\0\0\4\0\0\0\1:\0\0\2\0\0;\0\0\4\0\0\0\1<\0\0\24\0\0\0\20\24\24\24\24\24\24\24\24\24\24\24\24\21\24\24\24=\0\0\5\0\3GMT3\0\0|0\0\0\6\0\4EXT11\0\0\2\0\0032\0\0\2\0\f3\0\0\2\0\0014\0\0\2\0\0025\0\0\2\0\0006\0\0\2\0\0007\0\0J\0HVersion 12.1.2.0.0 17185003 OGGCORE_12.1.2.0.0_PLATFORMS_130924.1316_FBO4\0\1B0\0\0\4\0\0\0\0011\0\0\201\0079691549\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0002\0\0\0202\0\0\f\0\n9.18.100893\0\0\201\0079691549\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0004\0\0\f\0\n9.18.100895\0\0\10\2\362QY\375\355\344\200Z\0\6\310", 1736) = 1736
(中略)
00:54:53.471008 nanosleep({1, 0}, NULL) = 0
00:54:54.471198 write(21, "G\1\0\220H\0\0+E\4\0A\0 \5\377\2\ ...
(中略)
00:54:54.475173 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
00:54:54.475218 select(7, [6], NULL, NULL, {0, 0}) = 0 (Timeout)
00:54:54.480571 write(21, "G\1\0\222H\0\0+E\4\0A\0\"\5\377\2 ...
(中略)
00:54:54.475173 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3519, ...}) = 0
00:54:54.475218 select(7, [6], NULL, NULL, {0, 0}) = 0 (Timeout)
00:54:54.480571 write(21, "G\1\0\222H\0\0+E\4\0A\0\"\5\377\2\ ...
 ↑単純に write している

メモ


参考

2016-01-31

x86のシステムコール

メモ


参考

TDE表領域暗号化 +DR + HSM

3.3.6 分散環境でのレプリケーション

Oracle Data Guardは透過的データ暗号化をサポートしています。プライマリ・データベースで透過的データ暗号化を使用する場合、Data Guard構成の各スタンバイ・データベースには、プライマリ・データベースからの暗号化ウォレットのコピーが必要です。プライマリ・データベースでマスター暗号化鍵を再設定した場合は、そのマスター暗号化鍵が格納されているウォレットを各スタンバイ・データベースにコピーする必要があります。

透過的データ暗号化を使用した格納済データの保護
  • Step by step method to implement Transparent Data Encryption (TDE) in Data Guard and RAC environments (Doc ID 1627807.1)
  • Is It Possible To Migrate The Master Keys From A Software Wallet To A HSM And Viceversa ? (Doc ID 1282980.1)

2016-01-30

NFS on Linux でロックを解放する方法

NFSクライアントがクラッシュしてNFSサーバにロックが残った場合、Solaris は clear_locks コマンドで解放できるようだが、Linux はないのかな。

ロックやアンロックは /fs/lockd/clntproc.c でやっているぽい。

Managing NFS and NIS

Managing NFS and NIS

11.3.3. Clearing lock state

The most likely cause of the lock not getting released is that the holding NFS client has crashed. You can take the list of hosts from the /var/statmon/sm directory and check if any are dead, or not responding due to a network partition. Once you determine which are dead, you can use Solaris's clear_locks command to clear lock state. Let's suppose you determine that gonzo is dead. Then you would do:

spike# clear_locks gonzo
Troubleshooting locking problems (Managing NFS and NIS, 2nd Edition)

メモ

$ perl -MFcntl -e '$locked=pack("ssL",Fcntl::F_WRLCK,q/SEEK_SET/,0);open(FH,">> ./test2.txt") and fcntl(FH, F_SETLK, $locked) and sleep(300)' &        
[3] 7297
$ lsof +f g -- /home/oracle/nfs/remote                                                                                                                 
COMMAND  PID USER   FD   TYPE       FILE-FLAG DEVICE SIZE/OFF      NODE NAME
bash    5309 root  cwd    DIR                   0,34       82 268435611 /home/oracle/nfs/remote (ggt.oracle.com:/home/oracle/nfs/local)
perl    5410 root  cwd    DIR                   0,34       82 268435611 /home/oracle/nfs/remote (ggt.oracle.com:/home/oracle/nfs/local)
perl    5410 root    3wW  REG W,AP,LG,0x80000   0,34        0 268440149 /home/oracle/nfs/remote/test1.txt (ggt.oracle.com:/home/oracle/nfs/local)
perl    7221 root  cwd    DIR                   0,34       82 268435611 /home/oracle/nfs/remote (ggt.oracle.com:/home/oracle/nfs/local)
perl    7221 root    3wW  REG W,AP,LG,0x80000   0,34        0 268440148 /home/oracle/nfs/remote/test2.txt (ggt.oracle.com:/home/oracle/nfs/local)
lsof    7306 root  cwd    DIR                   0,34       82 268435611 /home/oracle/nfs/remote (ggt.oracle.com:/home/oracle/nfs/local)
lsof    7307 root  cwd    DIR                   0,34       82 268435611 /home/oracle/nfs/remote (ggt.oracle.com:/home/oracle/nfs/local)
d fcntl(FH, F_SETLK, $locked) and sleep(300)'
$  perl -MFcntl -e '$locked=pack("ssL", Fcntl::F_UNLCK, 'SEEK_SET', 0);open(FH,">> ./test2.txt") and fcntl(FH, F_SETLK, $locked)'      

Linuxプログラミングインタフェース

Linuxプログラミングインタフェース

55.5 /proc/locks

$ cat /proc/locks                                                                                                                                     
1: POSIX  ADVISORY  WRITE 23915 fc:02:271151215 0 EOF
2: POSIX  ADVISORY  WRITE 23915 fc:02:271151214 0 EOF
3: POSIX  ADVISORY  READ  23901 fc:02:3425 0 EOF
4: POSIX  ADVISORY  READ  23889 fc:02:3425 0 EOF
5: POSIX  ADVISORY  READ  23891 fc:02:3425 0 EOF
  • 1. /proc/locks 内での通し番号
  • 2. ロックをかけたシステムコール(FLOCK:flock()、POSIX:fcntl())
  • 3. ロックモード(ADVISORY、MANDTORY)
  • 4. ロック種類(READ、WRITE)
  • 5. ロックを保持しているプロセスのPID
  • 6. ロック対象ファイル(ファイルシステムのメジャー、マイナデバイスID、i-node番号)
  • 7. ロック範囲バイト(flock()によるロックの場合は常に0)
  • 8. ロック範囲終了バイト



参考

2016-01-27

DBA_HIST_SQLSTAT.OPTIMIZER_ENV_HASH_VALUE

  • V$SQL.OPTIMIZER_ENV_HASH_VALUE
  • DBA_HIST_SQLSTAT.OPTIMIZER_ENV_HASH_VALUE
  • V$SQL.OPTIMIZER_ENV
  • DBA_HIST_OPTIMIZER_ENV.OPTIMIZER_ENV
  • DBMS_SQLDIAG.DUMP_TRACE
  • DBMS_SQLTUNE.SQLSET_ROW
  • DBMS_SQLTUNE_INTERNAL

参考

2016-01-24

NFS設定手順 on Oracle Linux 7.1

Oracle Linux 7.1 でNFSの設定をしたのでメモ。


環境


構成

NFS Server:/home/oracle/nfs/local -> NFS Server:/home/oracle/nfs/remote
                                  -> NFS Client:/home/oracle/nfs/remote

設定手順

NFS Server
$ mkdir -p /home/oracle/nfs/{local,remote}
  • /etc/exports に以下を追記
/home/oracle/nfs/local *.oracle.com(rw,no_root_squash)
  • NFS関連サービスを起動する
# systemctl start rpcbind
# systemctl start nfs-server
# systemctl start nfs-lock
# systemctl start nfs-idmap
# exportfs
  • マウントする
# mount -a
  • マウントできていることを確認する
# mount
NFS Client
$ mkdir -p /home/oracle/nfs/remote
  • /etc/fstab に以下を追記
ggt.oracle.com:/home/oracle/nfs/local /home/oracle/nfs/remote nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,noac,vers=3,timeo=600
  • portmap を起動する
# service portmap start
  • マウントする
# mount -a
  • マウントできていることを確認する
# mount

参考

Oracle Database on AIX の共有メモリの使い方

How ORACLE Uses Memory on AIX. Part 3: Locking SGA « Intermediate SQL が良記事なのでサマリをメモ。

  • PRA_PAGE_SGA=true にすると起動時にSGAサイズ分の物理もメモリを使う。そうでない場合は、デマンド・ページングにより仮想メモリは割当てられるが、物理メモリが割当てられるのは実際に使われるとき。*1
  • LOCK_SGA=ture にすると、ページアウトされない。*2
  • 10.1 以降は "vmo -p -o v_pinshm = 1" を設定する必要ない。
    • 9.2 までのメモリロック
shmget(IPC_PRIVATE, shm_size, IPC_CREAT|SHM_PIN)
    • 10.1 からのメモリロック
shmctl(shm_id, SHM_LOCK, ...)
  • AIX のページサイズは 4K, 64K, 16M, 16G の4つ。
  • 16M、16Gのラージページはページアウトできない。
  • ラージページを使う場合は LOCK_SGA=true にする必要がある。

WebLogic Server の実行スレッド以外のスレッドの数を調べてみた

WebLogic Server 12.1.2 の実行スレッド以外のスレッド数を調べてみた。

Hyper-Threading の ON/OFF を切換えて、WebLogic Server を起動してスレッドダンプを取得してみると、GC task thread と weblogic.socket.Muxer のスレッド数が変わる。

おそらくスレッド名に数字がついているものはCPU数などによって数が変わると思われる。


追記(2016/01/26):

id:yamadamn さんにGCスレッド数は -XX:ParallelGCThreads=threads で指定できると教えてもらいました。

-XX:ParallelGCThreads=threads

Young世代とOld世代の、パラレル・ガベージ・コレクションに使用されるスレッド数を設定します。デフォルト値は、JVMに使用可能なCPUの数によって異なります。

たとえばパラレルGCスレッド数を2に設定するには、次のオプションを指定します。

-XX:ParallelGCThreads=2

java

スレッドダンプを取得する

$ jcmd
21046 sun.tools.jcmd.JCmd
20646 weblogic.Server
$ jcmd 20646 Thread.print > wls12120_thread_dump_2cpu_20160124.log

スレッド数を調べる

$ grep '^\"'  wls12120_thread_dump_2cpu_20160124.log|wc -l
33
$ grep '^\"'  wls12120_thread_dump_2cpu_20160124.log|grep -v weblogic.kernel.Default|wc -l
28
$ grep '^\"'  wls12120_thread_dump_2cpu_20160124.log|sort
"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f9bacd10800 nid=0x1095 in Object.wait() [0x00007f9ba3345000]
"Attach Listener" daemon prio=10 tid=0x00007f9b90023800 nid=0x10ce waiting on condition [0x0000000000000000]
"C2 CompilerThread0" daemon prio=10 tid=0x00007f9bac0a6000 nid=0x108f waiting on condition [0x0000000000000000]
"C2 CompilerThread1" daemon prio=10 tid=0x00007f9bac0a9000 nid=0x1090 waiting on condition [0x0000000000000000]
"DoSManager" daemon prio=10 tid=0x00007f9b78228000 nid=0x109f waiting on condition [0x00007f9ba2632000]
"DynamicListenThread[Default[1]]" daemon prio=10 tid=0x00007f9b6cb2f800 nid=0x10a6 runnable [0x00007f9ba1821000]
"DynamicListenThread[Default[2]]" daemon prio=10 tid=0x00007f9b6cb2a800 nid=0x10a3 runnable [0x00007f9ba1b24000]
"DynamicListenThread[Default[3]]" daemon prio=10 tid=0x00007f9b6cb2e000 nid=0x10a5 runnable [0x00007f9ba1922000]
"DynamicListenThread[Default]" daemon prio=10 tid=0x00007f9b6cb2c800 nid=0x10a4 runnable [0x00007f9ba1a23000]
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f9b6c127800 nid=0x1099 runnable [0x00007f9ba2c3b000]
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f9b6c129800 nid=0x109a runnable [0x00007f9ba2b3a000]
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f9b6c130000 nid=0x109b runnable [0x00007f9ba2a39000]
"Finalizer" daemon prio=10 tid=0x00007f9bac079000 nid=0x108d in Object.wait() [0x00007f9bb052a000]
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f9bac020000 nid=0x1089 runnable 
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f9bac021800 nid=0x108a runnable 
"main" prio=10 tid=0x00007f9bac00a000 nid=0x1088 in Object.wait() [0x00007f9bb3894000]
"Reference Handler" daemon prio=10 tid=0x00007f9bac077000 nid=0x108c in Object.wait() [0x00007f9bb062b000]
"Service Thread" daemon prio=10 tid=0x00007f9bac0ab800 nid=0x1091 runnable [0x0000000000000000]
"Signal Dispatcher" daemon prio=10 tid=0x00007f9bac0a4000 nid=0x108e runnable [0x0000000000000000]
"[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x000000000162d000 nid=0x109c in Object.wait() [0x00007f9ba2938000]
"[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x000000000162e800 nid=0x10a1 in Object.wait() [0x00007f9ba1d26000]
"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f9bace16000 nid=0x10a7 in Object.wait() [0x00007f9ba14fe000]
"[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f9bace18000 nid=0x10a8 in Object.wait() [0x00007f9ba13fd000]
"Thread-11" prio=10 tid=0x00007f9b6c5c9000 nid=0x10a0 waiting on condition [0x00007f9ba2736000]
"Thread-7" prio=10 tid=0x00007f9b6c06e800 nid=0x1098 waiting on condition [0x00007f9ba2d3c000]
"Timer-0" daemon prio=10 tid=0x00007f9bac831000 nid=0x1093 in Object.wait() [0x00007f9ba376e000]
"Timer-1" daemon prio=10 tid=0x00007f9bacd0d000 nid=0x1094 in Object.wait() [0x00007f9ba3446000]
"VDE Transaction Processor Thread" daemon prio=10 tid=0x00007f9b6c24a000 nid=0x109d in Object.wait() [0x00007f9ba2837000]
"VM Periodic Task Thread" prio=10 tid=0x00007f9bac0b6800 nid=0x1092 waiting on condition 
"VM Thread" prio=10 tid=0x00007f9bac073000 nid=0x108b runnable 
"weblogic.GCMonitor" daemon prio=10 tid=0x00007f9b6cb26800 nid=0x10a2 in Object.wait() [0x00007f9ba1c25000]
"weblogic.timers.TimerThread" daemon prio=10 tid=0x00007f9bacd2e000 nid=0x1097 in Object.wait() [0x00007f9ba3042000]
"weblogic.time.TimeEventGenerator" daemon prio=10 tid=0x00007f9bacd21800 nid=0x1096 in Object.wait() [0x00007f9ba3244000]
$ grep '^\"' wls12120_thread_dump_4cpu_20160124.log|wc -l
36
$ grep '^\"' wls12120_thread_dump_4cpu_20160124.log|grep -v weblogic.kernel.Default|wc -l
31
$ grep '^\"' wls12120_thread_dump_4cpu_20160124.log|sort
"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f693d415800 nid=0x50cd in Object.wait() [0x00007f692a922000]
"Attach Listener" daemon prio=10 tid=0x00007f6910001000 nid=0x5235 waiting on condition [0x0000000000000000]
"C2 CompilerThread0" daemon prio=10 tid=0x00007f693c0aa000 nid=0x50b0 waiting on condition [0x0000000000000000]
"C2 CompilerThread1" daemon prio=10 tid=0x00007f693c0ad000 nid=0x50b1 waiting on condition [0x0000000000000000]
"DoSManager" daemon prio=10 tid=0x00007f68b8001800 nid=0x50d8 waiting on condition [0x00007f6929c12000]
"DynamicListenThread[Default[1]]" daemon prio=10 tid=0x00007f68e09fa800 nid=0x50e2 runnable [0x00007f6928d09000]
"DynamicListenThread[Default[2]]" daemon prio=10 tid=0x00007f68e09ed800 nid=0x50df runnable [0x00007f692900c000]
"DynamicListenThread[Default[3]]" daemon prio=10 tid=0x00007f68e09f8800 nid=0x50e1 runnable [0x00007f6928e0a000]
"DynamicListenThread[Default]" daemon prio=10 tid=0x00007f68e09ee800 nid=0x50e0 runnable [0x00007f6928f0b000]
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00b7800 nid=0x50d1 runnable [0x00007f692a319000]
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00b4800 nid=0x50d2 runnable [0x00007f692a218000]
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00be000 nid=0x50d3 runnable [0x00007f692a117000]
"ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00c2000 nid=0x50d4 runnable [0x00007f692a016000]
"Finalizer" daemon prio=10 tid=0x00007f693c07d000 nid=0x50ae in Object.wait() [0x00007f6930b4d000]
"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f693c01f800 nid=0x50a8 runnable 
"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f693c021800 nid=0x50a9 runnable 
"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f693c023000 nid=0x50aa runnable 
"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f693c025000 nid=0x50ab runnable 
"main" prio=10 tid=0x00007f693c009800 nid=0x50a7 in Object.wait() [0x00007f6940d31000]
"Reference Handler" daemon prio=10 tid=0x00007f693c07b000 nid=0x50ad in Object.wait() [0x00007f6930c4e000]
"Service Thread" daemon prio=10 tid=0x00007f693c0af800 nid=0x50b2 runnable [0x0000000000000000]
"Signal Dispatcher" daemon prio=10 tid=0x00007f693c0a8000 nid=0x50af runnable [0x0000000000000000]
"[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68d8006800 nid=0x50d5 in Object.wait() [0x00007f6929f15000]
"[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68d8008000 nid=0x50dd in Object.wait() [0x00007f692930f000]
"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68c02da000 nid=0x50e3 in Object.wait() [0x00007f692897b000]
"[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f693d282000 nid=0x50e4 in Object.wait() [0x00007f692887a000]
"Thread-12" prio=10 tid=0x00007f68e057e800 nid=0x50dc waiting on condition [0x00007f6929d13000]
"Thread-8" prio=10 tid=0x00007f68e006a000 nid=0x50d0 waiting on condition [0x00007f692a41a000]
"Timer-0" daemon prio=10 tid=0x00007f693c91e800 nid=0x50b4 in Object.wait() [0x00007f692ad2c000]
"Timer-1" daemon prio=10 tid=0x00007f693d413800 nid=0x50cc in Object.wait() [0x00007f692aa23000]
"VDE Transaction Processor Thread" daemon prio=10 tid=0x00007f68e01cf800 nid=0x50d6 in Object.wait() [0x00007f6929e14000]
"VM Periodic Task Thread" prio=10 tid=0x00007f693c0ba000 nid=0x50b3 waiting on condition 
"VM Thread" prio=10 tid=0x00007f693c076800 nid=0x50ac runnable 
"weblogic.GCMonitor" daemon prio=10 tid=0x00007f68e09f5800 nid=0x50de in Object.wait() [0x00007f692910d000]
"weblogic.timers.TimerThread" daemon prio=10 tid=0x00007f693d435000 nid=0x50cf in Object.wait() [0x00007f692a61f000]
"weblogic.time.TimeEventGenerator" daemon prio=10 tid=0x00007f693d421000 nid=0x50ce in Object.wait() [0x00007f692a821000]

補足

WebLogic Server インストール手順
$ su - oracle
$ cd /opt/oracle
$ unzip wls1212_devzip_update1.zip
$ cd wls12120
$ export JAVA_HOME=/usr/lib/jvm/java-openjdk
$ export MW_HOME=/opt/oracle/wls12120
$ . ./configure.sh
Do you want to configure a new domain?  [y/n]? y
Enter username to boot WebLogic server:weblogic
Enter password to boot WebLogic server:
For confirmation, please re-enter password required to boot WebLogic server:

...

<Jan 24, 2016 8:59:42 AM JST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.> 
<Jan 24, 2016 8:59:42 AM JST> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> 

起動・停止手順
$ cd /opt/oracle/wls12120/user_projects/domains/mydomain/bin
$ ./startWebLogic.sh &
$ ./stopWebLogic.sh

メモ

MW_HOME/wlserver/server/lib/wlsafclient.jarweblogic/Server.class -> weblogic/t3/srvr/*.class あたりがスレッドの起動に関わっているぽい。

追記(2016/01/26):

id:yamadamn さんに教えていただいたので改めてちゃんと確認したところ、その通りだった。

$ cd /opt/oracle/wls12120
$ find . -name '*.jar'|while read LINE
do
export LINE
jar tvf $LINE|perl -nle 'print $ENV{LINE} . $_'
done > weblogic_classes.txt
$ head -3 weblogic_classes.txt 
./oracle_common/modules/jersey-server-1.17.1.jar 15634 Thu Feb 28 12:47:06 JST 2013 META-INF/MANIFEST.MF
./oracle_common/modules/jersey-server-1.17.1.jar     0 Thu Feb 28 12:47:06 JST 2013 META-INF/
./oracle_common/modules/jersey-server-1.17.1.jar     7 Wed Feb 27 20:17:26 JST 2013 META-INF/jersey-module-version
$ grep weblogic/Server.class weblogic_classes.txt
./wlserver/modules/features/weblogic.server.merged.jar★  9849 Fri Sep 19 16:46:54 JST 2014 weblogic/Server.class
./wlserver/server/lib/wlsaft3client.jar  9849 Fri Sep 19 16:59:40 JST 2014 weblogic/Server.class

表2-1 WebLogic Serverクライアントの種類と機能

クライアント種類言語プロトコルクライアント・クラス要件主な機能
JMS SAFクライアント(WebLogic Server 9.2で導入)WMIJavaIIOPwlsafclient.jar
wljmsclient.jar
wlclient.jar
JDK 1.6以降
メッセージをクライアント上でローカルに格納し、クライアントの接続時にサーバー側のJMS宛先に転送します。SSLをサポートします。第7章「JMS SAFクライアントによる確実なメッセージ送信」を参照してください。T3クライアントの選択肢のうち、高速なものを使用することを検討してください。
スタンドアロン・クライアントの概要

さらに、

CAT(Classloader Analysis Tool)で調べることができるとのことなので、WebLogic を起動して、http://localhost:7001/wls-cat/ にアクセスし、インストール時に設定したidとパスワードを入力してログインして、

  • 左ペインで bea_wls_internal -> bea_wls_internal.war を選択
  • View: detailed を選択
  • Actions: Classloader Tree を選択
  • Type: sun.misc.Launcher$AppClassLoader -> HashCode のリンクを選択
  • Resource to analyze に "weblogic.Server" を入力して "Analyze Resource" を押下

f:id:yohei-a:20160126112021p:image:w360

Resource: weblogic.Server

Checksum: 74c69d6ed5e3047b088315a4be6254ea
Load Location: jar:file:/opt/oracle/wls12120/wlserver/modules/features/weblogic.server.merged.jar!/weblogic/Server.class
Classloader Type: sun.misc.Launcher$AppClassLoader
Classloader Hash Code: 537068416
Classloader Search Order: 537068416 ->537068416
Alternative Locations: None

Source:
public final class weblogic.Server {
    public static final String WEBLOGIC_INSTRUMENTATION_PROPERTY
    public static final String DIAGNOSTIC_PRE_PROCESSOR_CLASS
    public static final String WEBLOGIC_INSTRUMENTATION_SERVER_SCOPE
    public static final String CLASSLOADER_PREPROCESSOR
    public void weblogic.Server();
    public static void main(String[]);
    public static boolean isRedefineClassesSupported();
    public String toString();
    public static String getUsage();
}

Load Location で weblogic/Server.class は /opt/oracle/wls12120/wlserver/modules/features/weblogic.server.merged.jar から load されていることがわかる。


スレッドダンプ全量
$ cat wls12120_thread_dump_4cpu_20160124.log
20646:
2016-01-24 09:06:27
Full thread dump OpenJDK 64-Bit Server VM (24.79-b02 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007f6910001000 nid=0x5235 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f693d282000 nid=0x50e4 in Object.wait() [0x00007f692887a000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fe868358> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000fe868358> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68c02da000 nid=0x50e3 in Object.wait() [0x00007f692897b000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fe868e80> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000fe868e80> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"DynamicListenThread[Default[1]]" daemon prio=10 tid=0x00007f68e09fa800 nid=0x50e2 runnable [0x00007f6928d09000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
	- locked <0x00000000ff072158> (a java.lang.Object)
	at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
	at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
	at java.lang.Thread.run(Thread.java:745)

"DynamicListenThread[Default[3]]" daemon prio=10 tid=0x00007f68e09f8800 nid=0x50e1 runnable [0x00007f6928e0a000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
	- locked <0x00000000ff0727d8> (a java.lang.Object)
	at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
	at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
	at java.lang.Thread.run(Thread.java:745)

"DynamicListenThread[Default]" daemon prio=10 tid=0x00007f68e09ee800 nid=0x50e0 runnable [0x00007f6928f0b000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
	- locked <0x00000000ff073048> (a java.lang.Object)
	at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
	at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
	at java.lang.Thread.run(Thread.java:745)

"DynamicListenThread[Default[2]]" daemon prio=10 tid=0x00007f68e09ed800 nid=0x50df runnable [0x00007f692900c000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
	at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
	- locked <0x00000000ff072bf0> (a java.lang.Object)
	at weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:31)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
	at weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
	at weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:173)
	at java.lang.Thread.run(Thread.java:745)

"weblogic.GCMonitor" daemon prio=10 tid=0x00007f68e09f5800 nid=0x50de in Object.wait() [0x00007f692910d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fed60758> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
	- locked <0x00000000fed60758> (a java.lang.ref.ReferenceQueue$Lock)
	at weblogic.platform.GCMonitorThread.waitForNotification(GCMonitorThread.java:88)
	at weblogic.platform.GCMonitorThread.run(GCMonitorThread.java:64)

"[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68d8008000 nid=0x50dd in Object.wait() [0x00007f692930f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fed113a0> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000fed113a0> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"Thread-12" prio=10 tid=0x00007f68e057e800 nid=0x50dc waiting on condition [0x00007f6929d13000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000000fe868210> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
	at weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89)
	at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:678)
	at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1078)
	at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1070)
	at java.lang.Thread.run(Thread.java:745)

"DoSManager" daemon prio=10 tid=0x00007f68b8001800 nid=0x50d8 waiting on condition [0x00007f6929c12000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at com.octetstring.vde.DoSManager.run(DoSManager.java:433)

"VDE Transaction Processor Thread" daemon prio=10 tid=0x00007f68e01cf800 nid=0x50d6 in Object.wait() [0x00007f6929e14000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fee021b0> (a com.octetstring.vde.backend.standard.TransactionProcessor)
	at java.lang.Object.wait(Object.java:503)
	at com.octetstring.vde.backend.standard.TransactionProcessor.waitChange(TransactionProcessor.java:367)
	- locked <0x00000000fee021b0> (a com.octetstring.vde.backend.standard.TransactionProcessor)
	at com.octetstring.vde.backend.standard.TransactionProcessor.run(TransactionProcessor.java:212)

"[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f68d8006800 nid=0x50d5 in Object.wait() [0x00007f6929f15000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fed12038> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000fed12038> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00c2000 nid=0x50d4 runnable [0x00007f692a016000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
	- locked <0x00000000fee29028> (a sun.nio.ch.Util$2)
	- locked <0x00000000fee29018> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00000000fee28ef0> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
	at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:549)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:478)
	at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30)
	at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)

"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00be000 nid=0x50d3 runnable [0x00007f692a117000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
	- locked <0x00000000fee28ce8> (a sun.nio.ch.Util$2)
	- locked <0x00000000fee28cd8> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00000000fee28ba0> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
	at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:549)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:478)
	at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30)
	at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)

"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00b4800 nid=0x50d2 runnable [0x00007f692a218000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
	- locked <0x00000000fee29368> (a sun.nio.ch.Util$2)
	- locked <0x00000000fee29358> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00000000fee29230> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
	at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:549)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:478)
	at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30)
	at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)

"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007f68e00b7800 nid=0x50d1 runnable [0x00007f692a319000]
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
	- locked <0x00000000fee296a8> (a sun.nio.ch.Util$2)
	- locked <0x00000000fee29698> (a java.util.Collections$UnmodifiableSet)
	- locked <0x00000000fee29570> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
	at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:549)
	at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:478)
	at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30)
	at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)

"Thread-8" prio=10 tid=0x00007f68e006a000 nid=0x50d0 waiting on condition [0x00007f692a41a000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x00000000c121fce8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
	at weblogic.utils.concurrent.JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89)
	at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:678)
	at weblogic.store.internal.PersistentStoreImpl.synchronousFlush(PersistentStoreImpl.java:1078)
	at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:1070)
	at java.lang.Thread.run(Thread.java:745)

"weblogic.timers.TimerThread" daemon prio=10 tid=0x00007f693d435000 nid=0x50cf in Object.wait() [0x00007f692a61f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fee2a1d8> (a java.lang.Object)
	at weblogic.timers.internal.TimerThread.doWait(TimerThread.java:114)
	- locked <0x00000000fee2a1d8> (a java.lang.Object)
	at weblogic.timers.internal.TimerThread.access$000(TimerThread.java:22)
	at weblogic.timers.internal.TimerThread$Thread.run(TimerThread.java:290)

"weblogic.time.TimeEventGenerator" daemon prio=10 tid=0x00007f693d421000 nid=0x50ce in Object.wait() [0x00007f692a821000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c11e82b0> (a weblogic.time.common.internal.TimeTable)
	at weblogic.time.common.internal.TimeTable.snooze(TimeTable.java:286)
	- locked <0x00000000c11e82b0> (a weblogic.time.common.internal.TimeTable)
	at weblogic.time.common.internal.TimeEventGenerator.run(TimeEventGenerator.java:117)
	at java.lang.Thread.run(Thread.java:745)

"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=10 tid=0x00007f693d415800 nid=0x50cd in Object.wait() [0x00007f692a922000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c1220558> (a weblogic.work.ExecuteThread)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:238)
	- locked <0x00000000c1220558> (a weblogic.work.ExecuteThread)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:271)

"Timer-1" daemon prio=10 tid=0x00007f693d413800 nid=0x50cc in Object.wait() [0x00007f692aa23000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fee2a3d8> (a java.util.TaskQueue)
	at java.util.TimerThread.mainLoop(Timer.java:552)
	- locked <0x00000000fee2a3d8> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

"Timer-0" daemon prio=10 tid=0x00007f693c91e800 nid=0x50b4 in Object.wait() [0x00007f692ad2c000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000fee2a7f0> (a java.util.TaskQueue)
	at java.lang.Object.wait(Object.java:503)
	at java.util.TimerThread.mainLoop(Timer.java:526)
	- locked <0x00000000fee2a7f0> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:505)

"Service Thread" daemon prio=10 tid=0x00007f693c0af800 nid=0x50b2 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=10 tid=0x00007f693c0ad000 nid=0x50b1 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=10 tid=0x00007f693c0aa000 nid=0x50b0 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x00007f693c0a8000 nid=0x50af runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x00007f693c07d000 nid=0x50ae in Object.wait() [0x00007f6930b4d000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c18f2a18> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
	- locked <0x00000000c18f2a18> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" daemon prio=10 tid=0x00007f693c07b000 nid=0x50ad in Object.wait() [0x00007f6930c4e000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c18f27e0> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:503)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
	- locked <0x00000000c18f27e0> (a java.lang.ref.Reference$Lock)

"main" prio=10 tid=0x00007f693c009800 nid=0x50a7 in Object.wait() [0x00007f6940d31000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c171c2b8> (a weblogic.t3.srvr.T3Srvr)
	at java.lang.Object.wait(Object.java:503)
	at weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:995)
	- locked <0x00000000c171c2b8> (a weblogic.t3.srvr.T3Srvr)
	at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:492)
	at weblogic.Server.main(Server.java:74)

"VM Thread" prio=10 tid=0x00007f693c076800 nid=0x50ac runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f693c01f800 nid=0x50a8 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f693c021800 nid=0x50a9 runnable 

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f693c023000 nid=0x50aa runnable 

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f693c025000 nid=0x50ab runnable 

"VM Periodic Task Thread" prio=10 tid=0x00007f693c0ba000 nid=0x50b3 waiting on condition 

JNI global references: 230

関連


参考

JDK 5.0から採用されているパラレルGC用の処理スレッドです。このスレッドは、CPUコアと同じ数だけ生成されます。

詳細は、以下のマニュアルを参照してください。

Interstage Application Serverにおいて、Javaのフルスレッドダンプに現われる”GC task thread”とは、どのようなスレッドですか?

*1AIXに限らない

*2AIXに限らない