スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NSD: NIF Collection Users (pool)

2009年07月31日 00:58

今日はNSDのエントリの中でも「NIF Collection Users (pool)」と言うセクションについて説明します。
このセクションはひと言で言うと、ノーツが開いているビューの情報と、ビューを開いているスレッドの一覧です。 「NIF Collections」と言うよく似た名前のセクションがあるのですが、大きな違いはアクセスしているスレッド情報を確認できる事にあります。

始めにこのセクションがどのように表示されるか見ていこうと思うのですが、非常に横に長いセクションなので、表示の都合上二つに折って説明します。

古いフォーマット
------ NIF Collection Users (pool) -----
CollUserVB hColl CollID CollectionVB Remote OFlags ViewNoteID
------------ ------ ------ ------------ ------ ------ ----------
[ 8: 15364] 336 0 [ 6: 16388] NO 0x0082 758


Data HDB/Full View HDB/Full RefCnt SessionID Open By
------------- ------------- ------ ------------- --------------
339/ 343 339/ 343 1 [ 9: 4679] [ nSERVER:13e4:0055]


新しいフォーマット
<@@ ------ Notes Data -> NIF Data -> NIF Collection Users (pool) (Time 14:47:29) ------ @@>

CollUserVB hColl CollID CollectionVB Remote OFlags ViewNoteID
------------ ------ ------ ------------ ------ ------ ----------
[ 00004405] 20 0 [ 00001005] NO 0x0000 290
[ 00002005] 7 0 [ 00003005] NO 0x0000 446
[ 00002805] 22 0 [ 00003005] NO 0x0000 446


Data HDB/Full View HDB/Full RefCnt SessionID Open By
------------- ------------- ------ ------------- --------------
11/11 11/11 1 [] [ nlnotes: 1318: 0005]
6/6 6/6 1 [] [ nlnotes: 1318: 0002]
21/21 21/21 1 [] [ nlnotes: 1318: 0005]


見れば何となく意味が分かった今までのセクションと比べて、このセクションは比較的とっつきにくいのではないかと思うのですが、右端に[プロセス名:PID:仮想スレッドID] が表示されているので、ビューに関連した情報とこのスレッド情報を関連付けているセクションではないか?と言うのは分かると思うのですが、「ViewNoteID」とかで関連付ける事が出来るのは分かるのではないでしょうか?
 ちなみにNoteIDはDB内では一意ですが、複数のDB間ではもちろん重複する可能性もあるので、「このDBの中にあるこのビュー」と言う関連付けは、View HDBの情報でそのユーザー(スレッド)が使用しているデータベースハンドルが分かるのでここから特定する事が出来ます。(ちなみにスレッドがつかんでいるもの・・・・と言う切り口で見たいならVThreadセクションを使うので、あまりこの観点で広げていく事はこのセクションでは必要ありません。)

CollectionVB:
 CollectionをあらわすIDのようなものだと思ってください。実際にはCollectionのIDと言うと、hCollの値のほうがその意味に近いのですが、他のセクションとの突合せはここを使うのでここを押さえておきましょう。とにかく左から四番目の列の値をコピーして探すと関連情報が出てくる、とだけ覚えておけばいいんじゃないかと思います。

ここは実際には、ビューのコレクション情報のメモリー上の位置を示すようなものです。

Remote:
ビューがリモートのビューかローカルサーバー上(またはワークステーション上)のものであるかを示しています。

ViewNoteID:
ビューのNOTEIDです。

Refcnt:
ビューを開いているユーザーの数です。

View HDB/Full:
ビューアクセスに使用しているデータベースハンドルです。
Fullはフルアクセスを行う際のハンドルですがあまり使いません。

Open By:
そのビューを開いているスレッド情報です


NSDのNIF情報は、このセクションとNIF Collections のセクションをセットで見ることが多いので、このあとのエントリと交互に見てみると面白いのではないかと思います。

スポンサーサイト

ステータスバーの情報をログに記録する

2009年07月30日 00:11

実はヘルプに書いてあるのですがあまり知られてないようなので・・・

ステータスバーのメッセージは過去の出力を確認するには少し不便ですよね。
クリックして表示される数行しか記録できないので、ローカルエージェントでPrint文を入れてデバッグしたいときとか、表示されたメッセージをコピーしたいときとかには少し不自由なのですが、ステータスバーの内容をログにも記録する方法があります。 (Lotus Notes 7.x以上で使用可能)
Notes.ini に以下の二つを指定してください。

LogStatusBar=1
Console_Log_Enabled=1

(これを見ると本能的にDebug_Threadid=1 も入れたくなった人は自分のトラブルシューティング歴を誇ってもいいと思います。 笑)
以下はInfocenterの記載です。

(英文) LogStatusBar (infocenterへのリンク)

日本語で読みたい方がほとんどだと思うので、日本語のシステム管理ヘルプの記載も抜粋しておきます。

LogStatusBar

書式:LogStatusBar=value

Description:クライアントのステータスバーメッセージのログファイルへの記録について、デフォルトの動作を制御します。管理者および開発者がデバッグのために使用します。ログに記録されたメッセージを見るには、LOG.NSF ファイルを開いてから [Miscellaneous Events] ビューをクリックします。ステータスバーメッセージの末尾には「Status Msg」という文字列が付きます。
ステータスバーメッセージを外部のファイルに書き込むには、この NOTES.INI 設定とともに、NOTES.INI 設定の Debug_Outfile= を使用します。
次の値を使用して、この変数を設定します。

0 : ステータスバーメッセージをログファイルに記録しない (デフォルト)
1 : ステータスバーメッセージを log.nsf に記録する。この場合でもメッセージはステータスバーに表示されます。

適用:Notes Client、Domino Designer
デフォルト: 0
同じ機能のユーザーインターフェース:なし

この設定だけだと、log.nsfに「Status Msg:」と言う接頭辞を付けたメッセージが記録されます。
この内容をテキストファイルに出力するにはさらにコンソールログの設定が必要になるので、Console_Log_Enabled=1 とセットで設定します。
上のヘルプにもある通り、Debug_Outfileとの併用を進めている記載が多いのですが、やはり6.x以降は Console_Log_Enabled=1 を使用して欲しいです。

意外と開発者とかに便利なんじゃないかと思うのですが、少しステータスバーの出力に不自由を感じたら使ってみてください。

8.5 FP1 が公開されています

2009年07月29日 00:12

Lotus Notes/Domino 8.5 FP1 が入手可能になっているようですのでお知らせしておきます。

Download Fix Pack 1 for IBM Lotus Notes and Domino 8.5

8.5 FP1 はPAOnline からも入手可能ですが、IBM IDを使用して、上記のサイトにあるリンク先からもダウンロードすることが出来ます。

8.5 FP1についての詳細は以下の情報もご参照下さい。
Lotus Notes/Domino 8.5 Fix Pack 1 Release Notice

主要なFixを上げてみようと思ったのですが、以前挙げてないものですとこんなところでしょうか。
8.0.2 FP2 と同じものもたくさん含まれています。

SPR # AGUD7DSU3Q スタンダードクライアントでQueryCloseイベント実行時に文書のクローズを止めることが出来ない問題を修正しました

他にもクラッシュ関連や新機能(DAOSやXPages)の修正が目立ちますが、サーバー・クライアント共にリリースされていますので予防保守の観点からも是非適用をご検討下さい。

IBM My Notifications

2009年07月28日 00:23

日本語対応していないので、あまり日本で紹介される事は無いのですが、今日は「IBM My Notifications」と言うサービスを紹介してみようと思います。

IBM My Notificationsは登録したカテゴリの製品情報などをメールで送るサービスです。
USのTechnote、Redbook、Whitepaperなど色々な文書を購読の対象に出来るのですが、英語の技術文書だけなのと、英語のメール購読サービスは他でも使っている人で無いと、あまり読む気がしないかもしれませんので全てのお客様が今すぐ使ってみたい、と思うものでないことも確かだと思います。ただ、早い段階で発行された文書を一覧で見れるのは特定の製品情報に興味を持っている方にはきっと有益だと思いますので、興味がある方は是非一度トライしてみてください。

■ IBM My Notifications について
IBM My notifications は以下のサイトから登録が行えます。

My notifications for IBM technical support
My Notificationsの紹介サイト
オーディオツアー(英語)はこちらから。

オーディオツアーは英語ですが、音声も無いし、スライドショー形式なので比較的見やすいと思います。

せっかくSoftware Support Toolbarを紹介したので、Toolbarからアクセスする場合にはこちらからアクセスできます。(画像は全てクリックすると拡大します)

ツールバーからの登録


IBM My notifications にアクセスしサインインするためには、IBM ID とパスワードが必要です。登録がまだの場合は、はじめに こちらから登録することが出来ます。あとパスワード忘れてしまった方はこちらからどうぞ。

ちなみにこのIBM IDの管理もSoftware Support Toolbar から行うことも出来ます。
IBM IDの管理


■ My Notificationsの登録
1. Productの選択
 IBM IDでログインし、My Notificationsのページに行ったら、始めは「Subscribe」タブに移動してください。ここではNotes/Dominoの技術情報を購読する事を想定し、「Lotus」を選びます。
カテゴリの選択

2. カテゴリの選択
次に必要な購読カテゴリを選択します。
Notes/Domino関連では以下のカテゴリがあるようなので、必要なものを選択し、「Continue」で次に進んでください。
・ Lotus Domino
・ Lotus Domino Designer
・ Lotus Notes
・ Lotus Domino Web Access
・ Lotus iNotes

詳細選択


3. アクションの決定
メール通知の設定は毎日とWeeklyのどちらかが選べるのと、形式もHTML形式とテキスト形式が選べるので設定して下さい。

青枠のフォルダーの設定はMy Notificationsサイトで閲覧をするのに使用することが出来ます。

アクションの選択


4. メールの通知
 この設定が終わると以下のようなメールが来ます。

件名: IBM My notifications - Software
送信者(From): IBM My Notifications <mynotify@stg.events.ihost.com>

メールのイメージ
メールイメージ


この手のサービスは私自身お客様がどのくらい興味があるものなのか全く分からないのですが、技術情報を少しでも参照しやすくなるための一助になればと思います。


(今回の記事はメールを実際に登録して受信したり結構時間がかかりました・・・)

IBM Software Support Toolbar を使ってみましょう

2009年07月27日 08:44

 今日はIBM Software Support Toolbar を紹介てみようと思います

Lotus Supportのブログでの紹介記事はこちら
Install the new and improved IBM Software Support Toolbar for easy access to key support resources!
 Lotus関連のツールバーで使用できるコンテンツを画面ショットで見れるのでこの紹介記事にあるスクリーンショットだけでも参考になるのではないかと思います。

IBM Software Toolbar はこちらから入手してください
IBM Software Support Toolbar


僕自身IEのツールバーはYahoo!でもGoogleでもMSNでも、最近は何でもツールバーにしたがる傾向があまり好きでなかったのと、画面が狭くなるのであまり好きではなかったのですが、以下のようにツールバーの表示/非表示を簡単に切り替えられるようになったのがポイント高かったです。
(画像をクリックすると拡大します)

IBM Software Toolbar

(IE7以上でないとこの機能は使えないと思います。FF用のToolbarではこの機能はありません)

これを入れておくと、Fix Central、Infocenter、APAR検索、TN検索、ダウンロード検索、各製品ごとのWikiサイトなどブックマークに入れ損ねてしまうようなサイト等のリンクだけでなく、IBM IDの管理などお問い合わせ時にも便利な各種ツールなどがありますので是非一度お試し下さい。





The XPages Blog のご紹介

2009年07月24日 00:04

Web Application Developmentのブログに吸収されるのかと思っていたのですが、XPagesの開発がブログを立ち上げたようです。始めのエントリを見るとメンバーも書いてありますね。

The XPages Blog

XPagesはコントロールも多いので、私自身まだまだ勉強しないといけないところはたくさんあるのですが、こういうブログとかでコントロールとかを1つずつでも紹介してもらえると助かるな、と思うので楽しみにしています。


developerWorks: Lotus Domino Designer 8.5 概要

2009年07月23日 00:16

今日はもう一個developerWorks の新着記事を紹介します。

「Lotus Domino Designer 8.5 概要」

8.5 は新機能のDAOSやID Vault、XPageなども新機能としては分かりやすいのでいいのではないかと思うのですが、この新しいDesignerだけは良し悪しはともかくとして、使い勝手は大幅に違うので開発者の方では抵抗を持つ方が多いのではないかと思います。また、開発者はやはりパワーユーザーが多いので小さな操作勝手の違いが大きく影響する可能性も高いので新しいUIに備える事は非常に重要なのではないかと思います。


というわけで、8.5に移行する予定がある方は是非DDE (Domino Designer on Eclipse)のメリットやどこが機能強化されたのか、と言う事を今まで以上にしっかり勉強してから新しいバージョンに移行した方が受け入れやすいのではないかと思います。
 Webアプリケーション開発者やJavaやJavaScriptなどのエディター機能の改善や各種拡張で便利に感じるところも多くあると思うので、是非強化された機能などが資料などから少しでも伝わるといいな、と思っています。


Lotus Techinical Update の資料が公開されています

2009年07月22日 00:07

Lotus Technical Update での資料が公開されています。
上のほうはLNDのお話なので。私の担当したセッションになります。
実はもっと遅れて公開されると思っていたのですが早いですね。

参加できなかった方も内容に興味がある方は是非一度のぞいてみてください。


Lotus Notes/Domino問題判別手法解説
Lotus Domino 8.5 DAOS 運用ガイド

Alt キーとの組み合わせで使うショートカットキー (8.5.1での変更)

2009年07月21日 02:49

今日はNotes Design Blog にあったこんなお話です。

The ALT+B to take you to the bookmark bar and Open List is changing

 Notes上で、「ALT + B」を押すとブックマークが表示されますが、通常Altキーを合わせたショートカットはメニューナビゲーションで使用されるのでBを含むメニューには使用できなくなってしまうので、このようなショートカットを改善しよう、と言うお話です。
スタンダードクライアントでは、Alt+S でサイドバーにフォーカスできる(実は知りませんでした。。)事もあってこれらも対象になるようです。
 結局8.5.1で予定されている変更は、Alt+B → Ctrl+Alt+B とか Alt+S → Ctrl+ALT+S とかにするようです。

ショートカットは使っている人には空気のようなものなので、たとえ変更内容などが聞かされていてもやっぱりびっくりしてしまうものなのですが、確かにいつかは変えないといけないもののような気がするので、こうなるしかなかったのかなあ・・・と思います。
何か思うことがある方は是非オリジナルのブログにもコメントを付けてみてください。

ただやはりショートカットは限定的でもいいので、もっとカスタマイズ可能になるのがいいですね。

N/D Wiki: Analyzing IBM Lotus Notes Client hangs and crashes

2009年07月17日 00:19

もう先月になりますが、Wiki にこんな記事が掲載されています。

Analyzing IBM Lotus Notes Client hangs and crashes

このブログでもNSDを使用してクラッシュの問題調査を行う話は頻繁に書いてある事もあったので呼んでみたのですが、NSDからFatal Stackやメモリの使用状況を確認していく、と言う非常に無難な内容になっていました。
 せっかくWikiに書くならもう少し踏み込んだ内容があってもよかったんじゃないかな、と思います。

ただ、僕もこの手の資料を作ってみて思ったのですが、「NSDとは?」とか「クラッシュとは?」みたいな話題から徐々にNSDの話になっていくので、書く内容が限定的になりすぎちゃうのでこの辺は少し難しいですね。第二弾とか出たら面白いんじゃないかな、と思います。

Lotus Notes/Domino 8.0.2 FP2 がリリースされました

2009年07月16日 00:24

8.0.2 FP2 がPA Online で公開されています。
Fix Central に上がってくるのを待とうと思ったのですがまだ上がってきていないようですので、お急ぎの方はPA Onlineからお願いします。

8.0.2 FP2 Release notice

大きなニュースとしては8.xの主要な文字化けの問題の一つであった以下の問題がやっと入った事ではないかと思います。(問題報告番号: HNAA7FBED6)

シンプルアクションによるメッセージ転送で文字化けが発生する

あとは結構細かいかもしれないですがMIMEメールで右ダブルクリックが効かなくなる以下の問題も、当初は制限事項とされていたのですが、最終的に修正されたのが個人的にはうれしかったです。
(問題報告番号: VSEN6U7MAQ)

(参考)右ダブルクリックしてもメールが正常に閉じない


クライアント・サーバー共に適用可能ですので、8.0.2をご利用のお客様は予防保守の観点からも是非適用をご検討下さい

設計を隠してあるDBで文書のフィールドを表示する

2009年07月15日 08:32

設計を見せたくないDBでは、設計を非表示にすればよいのですが、今度はそうすると文書のプロパティでフィールドが見えなくなって不便になってしまうことがあります。


いくら設計を隠したいからってこれは不便だな、と思っていたのですが、こんなスマートアイコンで解決できることを知りました。

That's not enough either (ND 6 & 7 Forum より)

スマートアイコン用コード
_names := @DocFields;
_values := @Transform(_names; "x"; x + ": " + @Left(@Implode(@Text(@GetField(x)); ","); 70));
@Prompt([OkCancelList]; "この文書のフィールド"; ""; ""; _values)


一応分かると思いますが、セットアップ手順も記載しておきます。
バージョン毎にUIは多少差異があるのですがその点はご容赦下さい。

セットアップ手順
1. クライアントのメニューより、[ファイル]-[プリファレンス]-[ツールバーの設定]を選び、左側のペインから「カスタマイズ」を選択してください
  (Notes 8 Standard 版の場合、メニューから、[ファイル]-[プリファレンス]を選択し、ノーツプリファレンスの画面から[ツールバー]-[カスタマイズ]を選択します。)
2. [新規]-[ボタン]を選択します。
3. 「アイコンの変更」ボタンで、任意のアイコンに変更してください。
4. 以下の値をスマートアイコンに入れます。
  
ボタンの表題文字: フィールドの表示
ポップアップヘルプ文字: フィールドの表示

式:(上に記載してある式をコピーしてください)
5. OKボタンを押してツールバーの設定を終了します。


設計が非表示になってなかったら文書のプロパティで出来る事をわざわざスマートアイコンでやっているだけなので、何てこと無いのですが隠されているときは便利ですね。

NSD: Open Databases セクション

2009年07月14日 00:41

今日はNSDのOpen Databases セクションです。

以前に特定のスレッドが開いているデータベースを特定する方法についてこちらで紹介しましたが、このセクションはとにかく開いているデータベースを一覧で出力しています。
VThread セクションは「このスレッドは何を開いているのか?」と言う視点であるのに対し、こちらは「あるデータベースを開いているスレッドは何か?」と言う視点で調査をするときに有用です。

まずは例によって出力を見てみます。

古いフォーマット
------ Open Databases -------

X:\Lotus\Domino\Data\mailgrp\XXTkProSup.nsf
Version = 43.0
SizeLimit = 0, WarningThreshold = 0
ReplicaID = 86256f58:006f5eb0
bContQueue = NSFPool [ 1: 28228]
FDGHandle = 0xf01c06d5, RefCnt = 1, Dirty = N
DB Sem = (FRWSEM:0x0244) state=2, waiters=0, refcnt=0, nlrdrs=1 Writer=[]
SemContQueue ( RWSEM:#0:0x029d) rdcnt=-1, refcnt=0 Writer=[] n=0, wcnt=-1, Users=-1, Owner=[]
By: [ nAMgr:0c70:0002] DBH= 471, User=CN=SERVER01/OU=SVR/O=ACME


新しいフォーマット
<@@ ------ Notes Data -> NSF Data -> Open Databases (Time 23:35:28) ------ @@>

CN=ServerXX/O=Org!!w_dir\wp\test.nsf
Version = 43.0
SizeLimit = 0, WarningThreshold = 0
ReplicaID = 0x492568f8:0x002e9cd7
bContQueue = NSFPool []
Offline = No
DeleteInProgress = No
FDGHandle = 0x00000000, RefCnt = 69, Dirty = N
DB Sem = (FRWSEM:0x0244) state=0, waiters=0, refcnt=0, nlrdrs=0 Writer=[ : 0000]
SemContQueue ( RWSEM:#0:0x029d) rdcnt=-1, refcnt=0 Writer=[ : 0000], n=0, wcnt=-1, Users=-1, Owner=[ : 0000]
By: [ NLNOTES: 02c8: 0002] DBH= 148, User=CN=Taro Yamada/O=Org
By: [ NLNOTES: 02c8: 0002] DBH= 149, User=CN=Taro Yamada/O=Org
By: [ NLNOTES: 02c8: 0002] DBH= 150, User=CN=Taro Yamada/O=Org
By: [ NLNOTES: 02c8: 0002] DBH= 152, User=CN=Taro Yamada/O=Org
By: [ NLNOTES: 02c8: 0002] DBH= 153, User=CN=Taro Yamada/O=Org
By: [ NLNOTES: 02c8: 0002] DBH= 154, User=CN=Taro Yamada/O=Org


さて、上の出力からも分かるように、ここではデータベースのフルパスが始めに出力されますが、リモートのデータベースを開いている場合には、「CN=ServerXX/O=Org!!w_dir\wp\test.nsf」のような形式でちゃんと出力されます。転送を行うRoterタスクなどがリモートのmail.boxに書き込んであるのが見えたりすることもあるのではないかと思います。


各フィールドは以下の通りです。
他にも気になる部分があるかもしれないですが、すべて公開されているわけではないので御容赦下さい。


Version: データベースのODSバージョン
SizeLimit: データベースのサイズの制限値 (KB) 0は制限なし
WarningThreshold: データベースの制限値の警告のしきい値(KB)
Replica ID: レプリカID
By: [ proc:PID:VTID] : [プロセス名: プロセスID: 仮想スレッドID]
DBH: データベースハンドル。DBを開くときに必ずこのデータベースハンドルを使用します。
User: データベースを開いているデータベース名

WriterとかOwnerとかあるのはデータベースセマフォの情報ですが、詳細はあまり公開されていないようなので触れないでおきます。(0x0244はDatabase SemaphoreをあらわすIDです。)

ここから、DB名、レプリカID、開いているユーザーやスレッドなどを特定して問題発生時のDBの使用状況などを確認します。

非常にNSDの中でも重要なセクションなので、何かDBの問題が気になるときはよく見てみましょう。

7月の注目サポート技術情報が公開されました

2009年07月13日 00:15

7月分の注目サポート技術情報が公開されています。

Lotus Notes/Domino 注目サポート技術情報 (2009年7月)


ざっと中身を見てみたのですがやはりDAOSのFAQをまとめた以下の文書などが追加されています。

DAOS (Domino Attachment and Object Service) に関する FAQ

同様の内容の文書がdeveloperWorks にも公開されていますが、公開以降に来た質問などをまとめたものです。
 バックアップやウイルススキャン・障害発生時のリストア・運用計画や細かい動きなどDAOSを利用する前に疑問に思うことは共通のものが多いので一度使用する前に目を通すといいんじゃないかと思います。

他に目新しいところでは一度延長されていた6.5.xのサポート終了ですが、2010年4月30日で終了となることが記載されています。


FAQ メールとしてメールでも来ると思うので一度気になる問題は関連文書を是非ご覧になってみてください。
よろしくお願いいたします。
Lotus Notes/Domino 6.5.xのサポート終了のお知らせとアップグレードのお勧めについて

ローカルアクセスアプリケーション: Runnable インターフェースの継承

2009年07月10日 00:02

なんかおかしいな、と思ってたら水曜日にこの記事をアップし忘れていたようです。
ちょっとネタ切れっぽかったのでちょうどよかったところもありますが。。

ローカルアクセスアプリケーションの最後のサンプルは、Runnable インターフェースを実装する方法で書くサンプルです。
 前の例との違いをよく確認してください。

NABTest1.java
import lotus.domino.* ;
public class NABTest1 implements Runnable{
// server name
static String domsrv = "ServerName/Org";
// database (e.g. mail\\hnagashi.nsf)
static String dbname = "names.nsf";


public static void main(String args[]){
NABTest1 t = new NABTest1();
NotesThread nt = new NotesThread((Runnable)t);
nt.start();
}
public void run(){
try{
Session s = NotesFactory.createSession() ;
//Session s = NotesFactory.createSessionWithFullAccess();
Database db = s.getDatabase(domsrv, dbname );
if(!db.isOpen()){ db.open();
} String title = db.getTitle();
String uname = s.getUserName();
System.out.println("UserName: " + uname );
System.out.println("ServerName: " + db.getServer());
System.out.println("Title: " + title);
}catch(NotesException ne){ System.out.println(ne.id + ne.text);
ne.printStackTrace() ;
}catch (Exception e){e.printStackTrace() ;
}
}
}


extends が implements になったのと runNotes() が run() になったところ以外は目新しいところも無いと思うのですが、それでOKです。このような例はJavaが多重継承を許可していないので、色々なクラスを継承したい場合にはどれかをインターフェースにして、キーとなるメソッドを実装していく形にする必要があるためです。(この辺の説明はあんまり自信ないのですが、合っているでしょうか?)

実際に必要になったときに何も知らない状態で1から書くのは面倒だと思うので、そんなときにちょっと思い出して参考にしてもらえればと思います。


ちなみにコンパイル用のバッチファイルは以下の通りです。
例によってC:\MyJava にサンプルコードを置く事を前提にしています。

compile.bat
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_11\bin
set PATH=%JAVA_HOME%;%PATH%
set CLASSPATH=C:\lotus\Notes\jvm\lib\ext\Notes.jar;C:\myjava
javac -target 1.5 NABTest1.java

run.bat
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_11\bin
set PATH=%JAVA_HOME%;%PATH%
set CLASSPATH=C:\lotus\Notes\jvm\lib\ext\Notes.jar;C:\myjava
java NABTest1


NSD: Shared OS fields (MM/OS structure)

2009年07月09日 00:12

今日はNSD の中でも、Shared OS Fields についてお話します。
この呼び名は、6.5.4以前のNSDで使われていたもので、6.5.5以降ではこのセクションは MM/OS tructure と呼ばれています。

 なんだか全然違う名前に変わっているし、どちらも名前からが意味を想像しにくくて分かりにくいのですが、クラッシュのNSDでは、ここは「クラッシュ情報」のようなものを表示するセクションだと思ってください。
 それにしても何でこのような名前なのでしょうか。どちらも「OS」と言う言葉が使われていますが、やはり大多数の人がこの名前を聞くと、オペレーティングシステムの事を想像してしまいますが、実はそうではありません。
 実際には、OSと言うのは、NOS = Notes Object Service の意味で使われています。これがNotesではメモリー管理やスレッド管理などを担って結果としてOSの違いを吸収するレイヤーになるので、オペレーティングシステムと誤解してもある程度意味が通ってしまうのですが、この辺もつまづきのもとですね。
 もう一つ出てきた「MM」はもちろん「マジむかつく」の意味ではなく、「Domino Memory Management」の意味になります。これを統括する部分はMMM (MM Manager)と呼ばれたりします。
 つまり、このセクションは、MMやOSと言う重要な構造体のサマリー情報を表示する事を目的としている部分です。結果としてクラッシュなどの重要な情報も含んでいます。

出力を見てみましょう。

 6.5.4以前
------ Shared OS Fields -------

Start Time = 11/16/2005 07:54:40 PM
Crash Time = 11/16/2005 08:04:07 PM
SharedDPoolSize = 1000000
FaultRecovery = 0x00010013
Thread [ nAMgr:0bb8:0002]/[ nAMgr:0bb8:0b1c] (bb8/2/b1c)
caused Static Hang to be set
ConfigFileSem = ( SEM:#0:0x010d) n=0, wcnt=-1, Users=-1, Owner=[]
FDSem = ( RWSEM:#11:0x410f) rdcnt=-1, refcnt=0 Writer=[] n=11, wcnt=-1, Users=0, Owner=[]


新しいバージョンのものは例によって自分のクライアント環境のものを使います。
 6.5.5以降
<@@ ------ Notes Data -> OS Data -> MM/OS Structure Information (Time 08:44:37) ------ @@>

Start Time = 2009/06/25 01:39:19
Crash Time = 2009/06/25 08:44:14
Console Log Enabled = 1
Console Position = 791
Error Message = PANIC: 01:92
Console Position = 791
SharedDPoolSize = 4194304
FaultRecovery = 0x00010c01
Cleanup Script Timeout= 300
Crash Limits = 0 crashes in 0 minutes
StaticHang = Virtual Thread [ nlnotes: 1340: 0002] (Native thread [ nlnotes: 1340: 12d0]) (0x1340/0x2/0x12d0)
ConfigFileSem = ( SEM:#0:0x010d) n=0, wcnt=-1, Users=-1, Owner=[ : 0000]
FDSem = ( RWSEM:#52:0x410f) rdcnt=-1, refcnt=0 Writer=[ : 0000], n=52, wcnt=-1, Users=0, Owner=[ : 0000]

色々気になる部分もあると思いますが、このセクションからは、Start Time や Crash Time、Fatal Thread 情報、Panic メッセージを確認します。
 Fatal Thread 情報はこのセクションで確認すると、仮想スレッドとネイティブスレッドの情報を一度に確認できます。
 Panicなどが出ている場合には、

Error Message = PANIC: LookupHandle: handle out of range

 のように表示されたりしますのでここの情報を確認します。


あまり頻度は多くありませんが、クラッシュしたNSDでは複数のFatalスレッドが見えることがあります。その場合には理論上はこのセクションを見て最初にFatalスレッドが発生したスレッドを確認することが出来ます。
 しかしながら、6.5.4 以前ではWindows 版のNSDではこの部分に最後にFatal スレッドを出したスレッドを記録してしまうのでこの場合にはプロセスツリーを見て、nsd.exe の親プロセスとなっているプロセスを確認します。

表示されている情報を見ると、こんなセクションをあえて見ることは無いだろう、と思ってしまうかもしれないですが、意外とここはサポートでも参照しているのです。


LND: SEMDEBUG.TXT の時刻表示を変換して見やすくする

2009年07月07日 00:06

今日はLotus Technical Update セミナーで紹介できなかった、LNDの主要な機能の一つとして、SEMDEBUG.TXT の時刻表記の変換機能について紹介します。 

始めに、LND の紹介記事は以下のエントリを参考にしてください。
Lotus Notes Diagnostics Utility
Lotus Technical Updateでの資料はこちらから

 Notes/Domino でセマフォタイムアウトが発生したときに、Debug_Capture_Timeout=1 を設定していると、SEMDEBUG.TXT と言うファイルに詳細情報が出力されます。
この情報をコンソールログなどと紐付けるには当然タイムスタンプの情報が必要なのですが、デフォルトはこのように表示されて、時刻情報が分かりません。

ti="0002916E-4925752C" sq="00002579" THREAD [06A4:06B9-1340] WAITING FOR WRITE LOCK ON FRWSEM 0x0244 database semaphore (@195422E3) (D:\Lotus\Domino\data\example.nsf) (R=1,W=0,WRITER=0000:0000,1STREADER=06A4:1340) FOR 30000 ms


R5.x までは、Debug_Capture_Timeout=10 を設定すればここにタイムスタンプが記録されたのですが、R6.x 以降は記録されなくなっています。詳細については以下の文書を参考にしてください。

Domino 6.0.x での DEBUG_CAPTURE_TIMEOUT による出力ファイルに記録されるセマフォタイムアウトの発生時刻について

なぜこんな変更があったのか、と言うと時間の変換などの時刻処理でもセマフォを使用するので、安全にセマフォの詳細ログを出力するにはこのような形式での出力が必要になったのです。

さて、そういうこともあって経緯はややこしいのですが、LNDでこのような形式のログを変換するのは簡単です。

ファイルを選択して、以下のように右クリックから、[Lotus Notes Diagnostic]-[Convert Semdebug Time Innards]を選択すると自動的に変換されます。

LNDからの実行

変換後は以下のようになります。これなら分かりますね。
2008/12/27 09:28:03 ZE9 sq="00002579" THREAD [06A4:06B9-1340] WAITING FOR WRITE LOCK ON FRWSEM 0x0244 database semaphore (@195422E3) (D:\Lotus\Domino\data\example.nsf) (R=1,W=0,WRITER=0000:0000,1STREADER=06A4:1340) FOR 30000 ms



SEMDEBUGについては、時間だけ分かっても中々意味も分かりづらいと思うので、SEMDEBUG.TXT の話なども機会があったら紹介していきたいと思っています。興味がある方は是非拍手もお願いします。。

dW ブログにて

2009年07月06日 00:11

 今日はちょっとNotes の話からは外れてしまうのですが、dWのブログで私のブログの紹介をして頂きました。

ソフトウェア・サポートWebサイト担当者のブログ より

Notesサポートのつぶやきとin4mix

一つ前のエントリではTwitterの方も紹介してもらっているようです。
ありがとうございます。


このブログを始めたときも色々情報を提供して頂いたり、大変お世話になったのでどんな内容で紹介して頂いたのか気になっていたのですが・・・

日本のサポートセンターのhnagasimさんのついったーのつぶやきもご紹介しましたが、今日は、Notesサポートのつぶやき というブログをご紹介します。とても人気があるようです。 Notes/Dominoご利用のお客様、ぜひご覧ください。

また、Informix関連のブログもあるのですよ。in4mix blog こちらのブログでも紹介がありますが、Informixテクニカル・サポートのページがリニューアルされました。FAQも更新されております!

なぜか、上記いずれのブログもネコがトップページにいます。。。


確かにどっちも猫がいますね。。。。
なぜだろう・・・
でもin4mix blogもちょっと親しみを覚えました。

# このブログの場合はデザイン変える日に犬好きの友達と飲んでいたので「猫の方が好きだなあ・・・」とか話しているうちにこのデザインになったのですが。。。

検索結果から絞込検索をする

2009年07月03日 00:12

検索をするときにいきなり詳細な検索条件を入れるのではなくて、ヒット数を見ながら徐々に絞り込みたいときは絞込検索を使いたいことも多いのではないでしょうか。

こんなときは、検索式を引き継いでどんどん「And」や「&」でつないでいってもいいのですが、検索バーの「詳細」を展開すると以下の画面のように「検索結果で検索」を選択して頂けると、絞込検索として検索結果が表示されます。(画像はクリックすると拡大します。)

絞込検索の画面

ノーツの全文検索はよく使われるのではないかと思うので是非活用してみてください。
ざっと確認したところ、Lotus Notes 7.x, 8.x, 8.5 では使えるようです。

履歴付き返信を色々な場面で使う

2009年07月02日 00:07

メールの返信はNotesのアプリ開発に明るい人ならノーツの返答文書の機能を利用して引用などを行っている事はよくご存知なのではないかと思います。

実は、これを利用して通常のディスカッションデータベースでもメールの返信のようにノーツ文書をメールの返信のようにセクションに入れることが出来ます。

引用したいディスカッションなどの文書をキャレット(ビュー上で選択する四角い枠のようなものです)で選択した状態で、メニューから[作成]-[メール]-[履歴付き返信] を選んでください。
(バージョンによって履歴付き返信のメニューでの名前や階層はわずかに異なるのでご注意下さい)

文書の作成者が宛先に入った状態でメールの返信に選択した文書の内容が入ると思います。

文書を作った人にメールで問い合わせなどをしたいときには便利なのではないかと思います。
ノーツアプリケーションはこの例のように、メールとアプリの境界の曖昧さも魅力の一つだなあ・・・・と思います。

あまり使わないかもしれませんが、思い出したら是非使ってみてください。。。

転送をまとめてする

2009年07月01日 02:03

メールの転送は元々メールを転送するときだけでなく、メールのヘッダーまで「切り取って」コピーしたいときやディスカッションなどのノーツ文書をヘッダー付きでコピーするときなどにも重宝するのではないでしょうか。

あるトピックに関連のあるメールをまとめて転送する場合など、まとめて文章を切り取りたいときは転送機能は複数の文書をまとめて実行する事が出来ます。

ビューから複数文書をチェックし、メニューから、[アクション]-[転送]-[添付ありで転送]などを実行してみてください。バージョンによっては、[アクション]-[転送] だけでいい事もあると思いますし、ビューアクションの転送でもかまいません。

ここで文書を複数選択すると複数文書が切り取られた新規メールが作成されます。

どの順番で文書が切り取られるかを見ていたのですが、メールのソートなどをしていないデフォルトの状態で、上に来ている文書から順に切り取られていくようで、選択順などには依存しないみたいです。

簡単に使えるので色々使ってみて下さい。


最新記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。