www.junmt.info

I love the guiter.


2024年4月26日(金) 08:09 JST

クロージャー

アプリ関連

クロージャーについて何も知らなかったのでメモ。
今メインで使っている言語がJavaなのでイメージとしては、簡易的なインスタンス生成とそれを実行しているように思える。

function counter() {
	var count = 0;
	function result() {
		count++;
		console.log(count);
	}
	return result;
}
var test = counter();
test(); → 1
test(); → 2
test(); → 3

function内の状態(count)が保持された状態で次々に実行される。

HttpSessionListenerの謎

アプリ関連

javaのHttpSessionListenerでハマったのでメモ。

まず、テスト中にsessionCreatedで新しいセッションが作られたイベントが取れていないことが判明。
再現方法を見つけてデバッカで追ってみたところ、sessionCreated自体が呼ばれていませんでした。

1)ブラウザ上から対象のServletにアクセスしてセッションを生成。(ブラウザを閉じない)
2)Tomcatを停止
3)Tomcatを起動 ←この時点でTomcat上にセッションは当然残っていない
4)1で使ったブラウザでアクセス。
5)sessionCreatedが呼ばれない。でもセッションが生成されている。

で、この原因ですが、以下のとおり。

ブラウザに以前のセッション情報(cookie)が残っているとアプリケーションサーバ側にセッションが無くても(同じセッションIDを発行して?)sessionCreatedが呼ばれない。
一部の携帯電話のようにセッション情報(cookie)を保持できない場合は必ずsessionCreatedが呼ばれる。
# 書いてあったサイトを転載しようかと思ったところ、忘れてしまった。。
# 海外のどっかのフォラームより。

試していないけど、GETパラメータ等にjsessionidを付与した場合も同じなんでしょうかね。。

S11HTバージョンアップ

アプリ関連すべては自己責任。忘れるな。

[その他]アタッシェケースコマンド

アプリ関連c:\Program Files\アタッシェケース\AtchCase.exe" 【圧縮したいファイルorフォルダ名】 /
exit=1 /p=【パスワード】 /exeout=1 /en=1

[ruby]gruffでX軸メモリ名を縦書きにする

アプリ関連gruffには元々文字を回転させる変数が用意されている。
しかし、通常では何故かアクセスできない上に肝心のX軸メモリ名(←これってなんて言うんだっけ)の部分では対応するコードが入っていない。

というわけで、ソースを少し弄れば縦書き対応にできる。

[ruby]proxy経由のgem

アプリ関連ruby on railsをやろうとセットアップしたところ、gemが動かない・・・。

外に出るにはproxyが必要なので、環境変数に下記を追加すると動いた。

set http_proxy=http://@proxy_server:port

[Interstage]スレッドダンプ/ヒープダンプの取り方

アプリ関連■スレッドダンプ(リモートデスクトップ上は不可)
【Windowsの場合】
c:\Interstage\jdk14\tools\thdump (JDK1.4系)
C:\>thdump.exe -p <プロセスID>

【Linuxの場合】
% kill -QUIT <プロセスID>

■ヒープダンプ
D:\Interstage\JDK14\tools\qualyzer 以下の実行ファイルなどのパスを通すか、作業ディレクトリへコピーしておく。

java -Xrunholmes
java -jar holmes.jar -i [input directory] -o [output directory] -heap,frame

HTMLで出力される。

■ヒープ容量監視
C:\Interstage\jdk14\tools\jheap (JDK1.4.2)
/opt/FJSVawjbk/jdk14/tools/jheap (JDK1.4.2)

jheap [-i interval] [-c count] [-t] pid

[WAS]指定したコンテキストを再起動

アプリ関連wsadminで入る

# Cell名とNode名を取得
set cell [string first "(" [$AdminConfig list Cell]]
set cell [expr $cell-1]
set cell [string range [$AdminConfig list Cell] 0 $cell]
set node [string first "(" [$AdminConfig list Node]]
set node [expr $node-1]
set node [string range [$AdminConfig list Node] 0 $node]

# オプション設定
set appManager [$AdminControl queryNames cell=$cell,node=$node,type=ApplicationManager,process=server1,*]

# 停止
$AdminControl invoke $appManager stopApplication コンテキスト名

# 起動
$AdminControl invoke $appManager startApplication コンテキスト名

[WAS]スレッドダンプの取り方

アプリ関連wsadminにアクセス

wsadmin> set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]

wsadmin> $AdminControl invoke $jvm dumpThreads

server1の場合はポート8880。
server12の場合はポート8891。

[WAS]wsadminで別のserverに接続

アプリ関連wsadminではデフォルトでlocalhostのserver1に接続する。
しかし、環境の分離の為にserver*を作っていた場合はwsadminでそれらにアクセスすることがある。

# ${WAS_ROOT}/binwsadmin.sh -host **** -port 【SOAPのポート】

尚、SOAPのポートは管理コンソールから確認できる。
最初 | 前へ | 1 2| 次へ | 最後