Dec 13, 2011

Eclipse: java.lang.UnsupportedClassVersionError: Bad version number in .class file

Thrown when the Java Virtual Machine attempts to read a class file and determines that the major and minor version numbers in the file are not supported. from Java 6 API

When I checked out project source, the project didn't have .project and .classpath files.
(I'm using Eclipse 3.7.)
So I added Project Facets Java as 1.6 and used JRE1.4 for JRE System Library.
My project is supposed to work on Java 1.4.
But I compiled it with Java 1.6 because Project Facets is Java 1.6.

I fixed Project Facets and Java Compiler version and have no problem.

Sep 27, 2011

How to reboot Solaris

Just type the following commands. bash-3.00$shutdown -y -i6 -g0 or bash-3.00$reboot

Aug 29, 2011

org.apache.xerces.dom.DeferredDocumentImpl.getXmlStandalone()Z reason

org.apache.xerces.dom.DeferredDocumentImpl.getXmlStandalone()Z

Reason : It occurs when xercesImpl-X.X.X.jar doesn't exist in the class path.
Solution : Just replace xerces-X.X-X.jar to xercesImpl-X.X.X.jar.

You can download xercesImpl-X.X.X.jar the following URL.
http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven2/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar

Jul 8, 2011

IE9 frameset tag issue

I've got a problem with IE9.
My web page doesn't show on IE9 document mode.
Because I used frameset tag, I thought my web page failed to satisfy HTML5 standard.
But my another page doesn't have any problem, even using same frameset tag.

I started to find why it happened. There is not answer on the net.
Master Google couldn't help me.(Also Bing and Yahoo)
So I quit searching it on the net and started finding the reason my self with developer tool of IE.

1. miss of javascript code -> deleted every javascript code, but it was same.
2. a bug of Tomcat 5.5 -> changed to 6.0, but it was same.
3. jsp -> quit using jsp, but...
4. 5. 6. ... 100. 101. ...
Finally, I found the reason after 4 days.

The reason was CSS. After I deleted the following line, My web page started working well.
<link href="/css/style.css" rel="stylesheet" type="text/css"/link>

May 12, 2011

How to get ORACLE_HOME by SQL

I had to get Oracle alert log file path by SQL on 9i, 10g.
Because I didn't want to force a user input it.

First I tried the following SQL sentence.
SQL> select * from sysman.mgmt$software_homes;

win2k3svrvminst OraHome92 ORACLE_HOME D:\oracle\ora92

win2k3svrvminst OraDb10g_home1 ORACLE_HOME F:\oracle\product\10.2.0\db_1
win2k3svrvminst Independent Products INDEPENDENT N/A
(copied on SQL Developer)

I didn't know which ORACLE_HOME is proper one.

I should keep searching and tried this.


SQL>select substr(file_spec,   1,   instr(file_spec,   '\',   -1,   2) -1) ORACLE_HOME
from dba_libraries
where library_name = 'DBMS_SUMADV_LIB';
(On Unix, substitute with '/'  )

This SQL showed me ORACLE_HOME, C:\oracle\product\10.2.0\db_1, but it required me as sysdba on 10g.

Because my application can't get sysdba's id and password, I had to keep searching.


SQL> set autopri on
SQL> var oracle_home varchar2(255)
SQL> exec dbms_system.get_env('ORACLE_HOME',:ORACLE_HOME)

It works too, but I don't want to use PL/SQL procedure.

Finally, I quited searching.
But this article can help some people who want to know  "How to get ORACLE_HOME by using SQL".

May 10, 2011

How to know Oracle DB log files' path

ALERT LOG

Oracle writes the alert.log file to the directory as specified by BACKGROUND_DUMP_DEST parameter.
If it is not set, the alert.log will be created in the ORACLE_HOME/rdbms/trace directory.

SQL> show parameter BACKGROUND_DUMP_DEST


NAME                                 TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
background_dump_dest                 string
/u01/app/oracle/diag/rdbms/trace


LISTNER LOG

Oracle writes listener.log file to ORACLE_HOME/NETWORK/log directory in usual.
You can confirm the path of listner.log file using "lsnrctl status" command.


[oracle@helium ~]$ lsnrctl

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 10-5月 -2011 14:55:15

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

LSNRCTLへようこそ。詳細は"help"と入力してください。

LSNRCTL> status
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for Linux: Version 11.2.0.1.0 - Production
開始日                    13-4月 -2011 15:47:37
稼働時間                  26 日 23 時間 7 分 41 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
ログ・ファイル            /u01/app/oracle/diag/tnslsnr/helium/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=helium.workslan)(PORT=1521)))
サービスのサマリー...
サービス"kiban.workslan"には、1件のインスタンスがあります。
  インスタンス"kiban"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"kibanXDB.workslan"には、1件のインスタンスがあります。
  インスタンス"kiban"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。

May 2, 2011

How to log(write) facility and priority to syslog on Linux(RedHat)

On RHEL 5 or higher version.(CentOS 5 or higher ver.), logging the syslog facility and priority is possible.


Add -S or -SS to SYSLOGD_OPTIONS in /etc/sysconfig/syslog and restart the syslog service for the change to take effect.


example)

  $ cat /etc/sysconfig/syslog
  # Options to syslogd
  # -m 0 disables 'MARK' messages.
  # -r enables logging from remote machines
  # -x disables DNS lookups on messages recieved with -r
  # See syslogd(8) for more details
  SYSLOGD_OPTIONS="-m 0 -SS -r"
  $ service syslog restart



Now you can confirm the facility and priority in your syslog.
  $ cat /var/log messages

  May  1 04:02:02 helium syslogd 1.4.1: restart.
  May  2 13:09:55 helium kernel: Kernel logging (proc) stopped.
  May  2 13:09:55 helium kernel: Kernel log daemon terminating.
  May  2 13:09:57 helium exiting on signal 15 <-- before 
  May  2 13:09:57 helium syslogd 1.4.1: restart (remote reception). <-- after
  May  2 13:09:57 helium kernel: klogd 1.4.1, log source = /proc/kmsg started.

Apr 11, 2011

bash if grammar or(||) and(&&) (if文の or and条件)

I had to check parameters.
I searched if grammar, but I couldn't get a example of if condition || condition.
So I changed key word for search. It was "condition expressions"
I've got the answer. OR condition is -o and AND condition is -a.
Here is the sample code.

OR condition

if ["$1" == "" -o "$2" == ""] ; then
  exit 1
fi

AND condition

if ["$1" == "" -a "$2" == ""] ; then
  exit 1
fi

Apr 8, 2011

Linux version check

Linuxのバージョンを確認する必要があって調べてみた。


#uname -a
Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux

#cat /proc/version
Linux version 2.6.18-194.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:35 EDT 2010

#cat /etc/redhat-release
CentOS release 5.5 (Final)

linux ssh起動メモ

テストに使うLinux サーバにsshで接続できなかったので
忘れないようにメモ

#service sshd start

Apr 7, 2011

Linux ユーザの全てのプロセスをkillするスクリプト

社内のLinuxサーバに無限にプロセスを生成するスクリプトが実行されたので
該当ユーザの全てのプロセスをkillするスクリプトを作ってみた。

#!bin/bash
uid=$1
pids=`ps ax -o uid,pid | grep $uid 2> /dev/null | awk '{print $2}'`
for pid in $pids
do
  if [ $pid != $$ ]; then
    echo "${user}: ${pid} killed"
    kill -KILL $pid
  fi
done


ちなみにそのユーザはbashのプロセスをずっと生成したので
以下のコマンドでも対応できる。
killall bash

rootユーザなら以下のコマンドで他のユーザの全てのプロセスをkillすることもできる。

killall5

Solarisの vmstat見方メモ

以前AIXのvmstatの見方を説明したが、
今回はSolaris。

$ vmstat 1 3
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr f0 s6 s1 s1   in   sy   cs us sy id
 0 0 0 1013264 74720  4   5 29  3  3  0  0 -0 -0  0  0  434   85   70  2  3 95
 0 3 0 1011328 96624 11  22  0  0  0  0  0  0  0  0  0  449  137   78  1  3 96
 0 0 0 1011328 96624  7   7  0  0  0  0  0  0  0  0  0  407   88   66  0  3 97

主に仕事で必要な情報はメモリ。

AIXと違うのはまず単位がKBであること、
AIXはページ単位だったため4を掛け算する必要があった。
(ページは4KB)

そしてswap項目は使用可能なvirtual memoryサイズ、
AIXはすでに使われた仮想メモリ領域を意味する。

freeはAIXと同じく物理メモリの使用可能サイズを意味する。

Apr 5, 2011

line numbers in eclipse(行番号を表示する設定)

ソースレビューをしていたら自分のEclipseに行番号が表示されないことに気付き設定した。
忘れないためメモ
Windows(ウィンドウ) -> Preferences(設定) -> General(一般) – > Editors(エディター) -> Text Editors(テキスト・エディター)
“Show Line Numbers(行番号の表示)” チェックボックスにチェックを入れる

Mar 30, 2011

AIX CPU別使用率

AIXでCPU別使用率を取得するコマンドと実行結果
「ALL」の代わりに「0 1」を指定すると全体の使用率は表示されないです。

# sar -P ALL 3 5


AIX jkrs 2 5 000FC63D4C00    03/30/11

System Configuration: lcpu=2

18:27:13 cpu    %usr    %sys    %wio   %idle
18:27:16  0       43       8       0      50
          1       52       3       0      45
          -       47       6       0      47
18:27:19  0       47       4       1      48
          1       47       6       0      48
          -       47       5       0      48
18:27:22  0       48      14       0      37
          1       51      11       0      38
          -       50      13       0      37
18:27:25  0       47       4       0      50
          1       50       5       0      45
          -       48       5       0      47
18:27:29  0       42       6       0      53
          1       53       3       0      44
          -       48       4       0      48

Mar 24, 2011

AIX6.1のレファレンスページ

AIXのコマンド調査に役に立つページ。
URLはsedの説明ページ。

http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds5/sed.htm

AIXのiostat見方メモ

何度も同じ検索をしてたので自分用のメモ

% iostat -d 1 2

System configuration: lcpu=2 disk=7
                " ブート時からのディスク・ヒストリーがありません。"


Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk4           0.0       0.0       0.0          0         0
hdisk1           0.0       0.0       0.0          0         0
hdisk2           0.0       0.0       0.0          0         0
hdisk3           0.0       0.0       0.0          0         0
hdisk5           0.0       0.0       0.0          0         0
hdisk0           0.0       0.0       0.0          0         0
cd0              0.0       0.0       0.0          0         0

% tm_act: アクティブだった時間のパーセントを意味。ボトルネックの判断にはこの項目がよく使われる

Kbps: データの書込み(Kb_wrtn)と読込み(Kb_read)の1秒間の合計。
計算式は(Kb_read + Kb_wrtn) / 間隔秒(今回の場合1秒)
Tps: 1秒間のトランスファの数。トランスファはデバイスドライバレベルのI/Oリクエスト。
Kb_read: 指定された間隔の間に行った読込みデータ量(KB)
Kb_wrtn: 指定された間隔の間に行った書込みデータ量(KB)

Mar 18, 2011

WAS windows サービス登録/削除

IBM WebSphere アプリケーションサーバをWindowsのサービスに登録方法から見よう

基本的なコマンドは下記になる。
\WASService.exe -add <サービス名> -serverName nodeagent -profilePath <プロファイルパス>

実際にはこんな感じに使う。

C:\IBM\WebSphere\AppServer\bin>WASService.exe -add "server1" -serverName server1
-profilePath "C:\IBM\WebSphere\AppServer\profiles\AppSrv01"

Adding Service: server1
 Config Root: C:\IBM\WebSphere\AppServer\profiles\AppSrv01"\config
 Server Name: server1
 Profile Path: C:\IBM\WebSphere\AppServer\profiles\AppSrv01"
 Was Home: C:\IBM\WebSphere\AppServer\
 Start Args:
 Restart: 1
IBM WebSphere Application Server V6 - server1 service successfully added.

問題は登録しても実際に上手く実行されないため削除するケースがよくある。
まずはサービスを停止し以下のコマンドを使う。

\WASService.exe -remove  <サービス名>

例)
C:\IBM\WebSphere\AppServer\bin>WASService.exe -remove server1

Mar 16, 2011

eclipseで大文字/小文字変換Tip

沢山の定数を宣言する時に助かるショットキー

CTRL+SHIFT+X:選択した範囲の文字列をすべて大文字に変換する。
CTRL+SHIFT+Y:選択した範囲の文字列をすべて小文字に変換する。

Mar 15, 2011

AIXのページングサイズと使用率コマンド

メモ
lsps -a

% lsps -a
Page Space  Physical Volume   Volume Group    Size   %Used  Active  Auto  Type
hd6             hdisk0            rootvg        4352MB    29     yes   yes    lv

AIXのvmstat見方メモ

AIXのメモリ使用サイズと使用可能サイズを取得するために
vmstatコマンドを考えたが、
avmがavailable memoryではなくActive Virtual Memory(アクセスされた仮想ページの数)だったので使えない。
freについてはマニュアルに以下のように書いてある。
This indicates the size of the free list. A large portion of real memory is
utilized as a cache for file system data. It is not unusual for the size of
the free list to remain small.
(結論は使用可能メモリサイズではないことで理解している。)


他の項目に関しては下記のURLを参考した。
http://www28.atwiki.jp/oshieteaix/pages/110.html
http://www.redbooks.ibm.com/redbooks/pdfs/sg246039.pdf

Mar 9, 2011

AIXの物理メモリサイズ確認コマンド

仕事でAIXのOSを監視する必要があるためコマンドを調査しまとめておきます。

AIX 5.2で動作確認

% lsattr -El mem0
goodsize 2048 使用可能な物理メモリーの合計 (MB) 偽
size     2048 物理メモリーの合計 (MB)           偽

goodsizeに関しては既に説明はあるが、下記のような意味だそうです。
Failed or failing memory can be detected and avoided.
Once found AIX may have to kill a process that was trying to use it but it can still keep going by never allocating it again.


% prtconf -m
メモリー・サイズ: 2048 MB