2010年02月17日

Windows サービス・スタートアップ項目 メモ

FLEXnet Licensing Service
Acresso SoftWare Inc.とやらのライセンス管理サービス。Acrobat9以降で絶賛使用中。停止したらAcrobatが使えなくなるか?
タグ:Windows msconfig
posted by poi at 11:00| memo | このブログの読者になる | 更新情報をチェックする

2010年02月15日

FireFox3.6 カスタマイズメモ

userChrome.css内の追加項目

検索バーの右側に履歴を出すボタンを表示

#searchbar .autocomplete-history-dropmarker {
display: -moz-box !important;
-moz-binding: url("chrome://global/content/bindings/autocomplete.xml#history-dropmarker");
}

移動ボタンを常時表示

#go-button { visibility: visible !important; }

移動ボタンの「移動」の文字を消す

#go-button label {display:none !important;}

不要なメニューを削除

file-menu、edit-menu、view-menu、go-menu、bookmarks-menu、tools-menu、helpMenuのそれぞれ表示したくないメニューを以下のように指定
#edit-menu { display: none !important; }

新しくタブを開くボタンを削除

tabbrowser .tabs-newtab-button {
display: none !important
}

about:config

About:config_entries参照。

Browser.urlbar.default.behavior

URL入力欄のプルダウンボタンクリック時に表示するURLのフィルタの指定。
default: 0 フィルタなし。
使用可能な値は以下の通り。
1 :Restrict: History
2 :Restrict: Bookmarks
4 :Restrict: Tags
8 :Match: Title
16:Match: URL
32:Restrict: Typed

フィルタしたい数値を加算してBrowser.urlbar.default.behaviorの値に入力する。
例)17=History+match URL; 49=History+match URL+Typed
History+Typed=33で。

検索履歴の表示順をHystory順にする

こちらから。
browser.formfill.bucketSize;-1
browser.formfill.maxTimeGroupings;1
browser.formfill.timeGroupingSize;-1
※アルファベット順にするにはbrowser.formfill.maxTimeGroupings;0に直す。

新しいタブを一番右の位置に出す

browser.tabs.insertRelatedAfterCurrent;false
posted by poi at 22:13| memo | このブログの読者になる | 更新情報をチェックする

2010年02月11日

付箋帳カスタマイズ

フリーのメモツール付箋帳のカスタマイズのメモ。
このツール、余計な機能がない簡易なメモツールだが、アラーム機能も付いていてなかなか便利。ただ、ツールのボタンというかタグが画面の中央よりでしか出せないとか、GUI周りの自由なカスタマイズがデフォルトでは提供されていない。
メニューくらい自分の好きな位置に出したかったので、いろいろ試してみたら、まあまあ満足する程度にはできたので記録。設定ファイルをざっと検証してわかったことだけ。

このツールは、設定が大体2項目に分かれている。
  1. ツール全体の設定項目
  2. 付箋グループと付箋紙の設定項目
「ツール全体の設定」は、タスクトレイアイコンを右クリックして設定する項目で、TagBook.iniで決められる。
「付箋グループと付箋紙の設定項目」は、グループタブや付箋一覧上で右クリックした時に表示される項目。付箋グループ1ならば、"インストールフォルダ¥tag¥0¥Group.env"内に設定が記述されている模様。
各Group.envはバイナリファイルなので手をつけられません。色の設定とか、付箋の見た目の設定はここに書かれているようなので、いじれれば色合わせとか楽なんだが。そこまでやるのも面倒。

というわけで、TagBook.iniの内容。[SysEnv]以下のみ、必要な項目のみ。
TagListArea / TagListArea=X Y W H
付箋一覧の表示位置の指定。TagListArea=1600 800 280 128ならば、モニタ上のX=1600px、Y=800pxの位置に、W=280×H=128の大きさで付箋一覧のボックスが出る。W×Hの最小値は256×128。Hは127以下になると、モニタの高さの50%の大きさに固定となってしまうようだ。
これは付箋一覧を移動したり大きさを変えれば勝手に更新してくれる。きっちりとした位置におきたい時は数値で指定すればいい。
TagListStat〜TagsRepasswd
この辺は、右クリックメニューで設定できる項目なので割愛。
Groups / 付箋グループの数の指定
デフォルトはGroups=8。ここの値に従って、"インストールフォルダ¥tag" 以下にグループフォルダが作成される。
普通に使っていれば、最初に8つの付箋グループができているはず。これじゃ多すぎる、3つでいい、という場合は以下のようにする。
  • Groups=3
そうすると、既にあるtagフォルダ以下の、フォルダ0、1、2だけが使用されるようになる。グループ4〜8(フォルダ3〜7)にはアクセスできなくなる。
メモをグループ4(フォルダ3)からグループ1(フォルダ0)に移したい時は、Groupsの数値を変える前に、GUI上で各付箋に対して「グループの変更」をすればよい。面倒なら、フォルダ3にある○○.tagファイルをフォルダ0にコピーすればいい。但し、「Group.env」はコピーしてはいけない。コピー先のグループが壊れてしまい、修正するのが面倒なことになる。
もちろん、グループ数を8以上に増やしたい時は、Groups=10とかにすればOK。tagフォルダも勝手に追加で増える。
GroupLocate / グループタブの配置位置
タスクトレイアイコンの右クリックメニューの「配置位置」と同じ。
尚、
  • GroupLocate=0:右付き
  • GroupLocate=1:左付き
  • GroupLocate=2:上付き
  • GroupLocate=3:下付き
以下に述べるGroupPosと併せていじると思うので一応記載。
GroupPos / GroupLocateで指定したポジションからのオフセット量(px)
GroupPos=0 :中央配置
これがデフォルト。
GroupPos=1とすると、上或いは左を基準に、1pxだけオフセットされる。
  • GroupLocate=0、GroupPos=1:右付き、上付きで1px下がる
  • GroupLocate=1、GroupPos=1:左付き、上付きで1px下がる
  • GroupLocate=2、GroupPos=1:上付き、左付きで1px右にずれる
  • GroupLocate=3、GroupPos=1:下付き、左付きで1px右にずれる

つまり、GroupPos=Aとすると、上記を基準にA pixel分移動する。 ひとつのグループタブは縦(幅)85pxなので、
モニタの左右に下付きにしたいなら
  • GroupPos=モニタ解像度のHight-(85×Group数)-タスクバー高さ35px
モニタの上下に右付きにしたいなら
  • GroupPos=モニタ解像度のwidth-(85×Group数)
1920×1080のモニタで、グループを1個だけにして、モニタ右側に下付きに配置したい時は、
1080-(85×1)-35=960をGroupPosへ指定する。
  • Groups=1
  • GroupLocate=0
  • GroupPos=960
グループ2個なら 1080-(85×2)-35=805をGroupPosへ指定する。
  • Groups=2
  • GroupLocate=0
  • GroupPos=805
となる。
ImageMax、Monitor
不明
TagsSize / 新規作成時の付箋の大きさ
TagsSize=256 128が最小値。 TagListAreaの最小値と組み合わせたらもっと小さくできるかも?
posted by poi at 23:11| memo | このブログの読者になる | 更新情報をチェックする

2010年01月24日

Web Accessにアクセスできない時のメモ

突然VMWareのWeb Access(https://host名:8333/ui/#)にアクセスできなくなった時のメモ。
状況は以下の通り。
  1. ゲストOSは問題なく稼働中、ログインもできるしhttpもアクセスできる
  2. ログイン関係のサービスを確認
     ・VMWare Host Agent →実行中
     ・VMWare Server Web Access →実行中
     ・VMWare Authorization Service →実行中
  3. セキュリティ関連の設定をチェック。
     ・Windows DefenderでVMWare関連のアプリは全て許可
     ・Windows Firewallでも特にフィルタリングなし
     ・AntiVirusソフトでもWeb関連の制限に該当するものはなし
     ・上記3つを全てを無効にしてもアクセス不可
  4. https://host名:8333/ui/にアクセスした時の挙動を確認。
     ・port 8333 →Establishedにはなる
     ・アクセス中、ブランクページのソースを表示すると以下の記述あり
      "VMware Infrastructure Web Access will not work unless your browser supports JavaScript."
JavaScriptなんて普通に使えてますし…。

もうよくわからないので、WebAccessを使用しない方向で検討した。 以下の方法で、直接ゲストOSにコンソール接続可能。

前準備
  • 以下のexeを実行して、vmware-vmrcをインストールする。
    インストールDir\VMware\VMware Server\tomcat\webapps\ui\plugin\vmware-vmrc-win32-x86.exe
  • 以下のファイルができる。インストール先は変更不可だった。
    C:\Program Files\Common Files\VMware\VMware Remote Console Plug-in\vmware-vmrc.exe
a. WebAccessのCommandsからコンソールを作成する方法
通常は、WebAccessを使用可の状態で、事前にコンソールを作る。


  1. WebAccess画面右側の「Commands」欄内、「Generate Virtual Machine Shortcut」をクリック。
  2. 別ウィンドウが開くので、「Desktop Shortcut」欄の「Install DeskTop Shortcut to ○○」のリンクをクリック。
  3. デスクトップ上に、以下のコマンドを持つショートカットが作成される。
    C:\Users\ユーザー名\AppData\Roaming\Mozilla\Firefox\Profiles\nqcku6ax.default\extensions\VMwareVMRC@vmware.com\plugins\vmware-vmrc.exe -h host名:8333 -M 16
b. WebAccessを使用せずにコンソールを作成する方法
  1. 前準備でインストールしたvmware-vmrc.exeのショートカットをデスクトップ上に作成する。
  2. ショートカットのプロパティを開き、「リンク先」の記述の末尾に以下を追記。
     ・-h host名:8333 -M 16
    以下のような記述になる。
    "C:\Program Files\Common Files\VMware\VMware Remote Console Plug-in\vmware-vmrc.exe" -h host名:8333 -M 16
これで、WebAccessが使用できなくても、稼働中のゲストOSへコンソール接続することは可能となる。
WebAccessの代替としては、VMware Infrastructure Clientをインストールして使用する方法もあるらしい。
VMware Infrastructure Client ネタいくつか - miau's blog?
VMwareServer2VIClient – アクセンスのおまけ
私は以下のサイトの方法ではVMware-server-2.0.2-203138.exeからVMware-viclient.exeを入手できなかった。
junsanの日記(出張所): VMware Server 2.0.1 へ VIClient を追加する手順

VMware Infrastructure ClientはWebAccessと完全に同等の機能を使用できるわけではないらしいので、できればWebAccessを復旧させたい。そこで、最終手段としてVMwareの再インストールを試みた。下手したらVMWareが全くコントロールできなくなるかもしれないのであくまでも最終手段。
既存のVMWareをアンインストールせずにインストール用パッケージを実行したところ、既存プログラムのリペアという選択肢が出てきたので、そちらを選択。
実行状況やサービスの状況を見ていると、基本的にコンポーネントは全部削除→再インストールしているみたい。入れなおすけどconfigは残しますよということか?
なんにせよ、入れなおしてWebAccessは復旧。結局原因はわからずじまい。
posted by poi at 00:09| memo | このブログの読者になる | 更新情報をチェックする

2009年11月17日

1.x SmartFoxServerの導入

1.x SmartFoxServerの導入

Apache+SFSで稼動させる。
ダウンロード
# wget http://www.smartfoxserver.com/download/SFSPRO_linux_1.6.6.tar.gz
解凍
# gzip -d SFSPRO_linux_1.6.6.tar.gz
# tar xf SFSPRO_linux_1.6.6.tar
インストール
# cat install
./jre/bin/java -jar installer.jar
スクリプトの中身はこれだけ。
うまくインストールが走らない時は、同梱javaを使用せずに自環境のjavaにパスを書き換えてやると動いたりする。
でも動かない時は大概ダウンロードするファイルを間違えてると思う。
# ./install

+-----------------------------------------------+
+ +
+ SmartFoxServer :: Linux Simple Installer +
+ version 1.2.0 -- (c) 2004 -2006 gotoAndPlay() +
+ +
+-----------------------------------------------+

This program will install SmartFoxServer PRO 1.6.6
to a directory of your choice and configure it.


Please type the full path of the folder
where SmartFoxServer should be installed.
Example: /home/userName

Installation folder >/web インストール先を指定
Please hold on while installing... [============]
-> Files copied.
-> Application configured.
-> Permissions set.

SmartFoxServer was succesfully installed and configured.
指定ファイル以下のSFS_PRO_1.6.6にインストールされる。
一応管理者の所属に移す。
# ls -la /web/ --context
drwxr-xr-x 1000 1000 user_u:object_r:user_home_t SFS_PRO_1.6.6
# chown -R web:web /web/SFS_PRO_1.6.6
実行
# ./sfs status
Removed stale pid file: /web/SFS_PRO_1.6.6/Server/runAsService//SmartFoxServer.pid
SmartFoxServer PRO is not running.
# ./sfs start
Starting SmartFoxServer PRO...
# ./sfs status
SmartFoxServer PRO is running (3366).
httpd.conf修正
以下のAliasを追加
# for SmartFoxServer

Alias /sfs/ "/web/SFS_PRO_1.6.6/"
<Directory "/web/SFS_PRO_1.6.6">
Options MultiViews
AllowOverride None
Order deny,allow
Deny from all
Allow from 192.168.1.
</Directory>
httpdを再起動
# /etc/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: Syntax error on line 45 of /etc/httpd/conf.d/nss.conf:
NSSPassPhraseHelper:
[失敗]
なんか失敗。これ、理由がわからない。
自分で設定をいじった部分でもない。SEEditを入れた影響か?
使ってもいないはずなので、とりあえずconfファイルを無効にした。
# httpd -t
Syntax error on line 46 of /etc/httpd/conf.d/nss.conf:
# mv /etc/httpd/conf.d/nss.conf /etc/httpd/conf.d/nss.conf_
# httpd -t
Syntax OK
# /etc/init.d/httpd start
httpd を起動中: [ OK ]
デーモン化
ランレベル3,5でデーモンとして起動する。
# ln -s /web/SFS_PRO_1.6.6/Server/sfs /etc/rc.d/rc3.d/S99sfs
# ln -s /web/SFS_PRO_1.6.6/Server/sfs /etc/rc.d/rc5.d/S99sfs
アクセステスト
  • http://192.168.1.1/sfs/releaseNotes.html
    →表示された
  • http://192.168.1.1/sfs/Admin/AdminTool.swf
    →表示されたがログインできず。(can't connect)
  • http://192.168.1.1/sfs/Examples/AS2/01_simpleConnect/index.html
    →表示されたが、can't connect
SELinuxをPermissiveにしてもcan't connectは変わらず。
jetty webserverで確認
とりあえず、デフォルトのjetty webserverにアクセス。
  • http://192.168.1.1:8080/は表示された。
Welcomeページから、Examplesをインストール。
  • http://192.168.1.1:8080/examples.pyをindexに、Examplesのリストが表示。
  • http://192.168.1.1:8080/Examples/AS2/01_simpleConnect/ にアクセス
    →表示されたが(can't connect)
httpdと状況は変わらないので、jetty webserverを無効にする。
config.xmlを以下のように修正。
<!-- Enable / Disable embedded webserver -->
<WebServer active="false">
<!-- <CfgFile>webserver/cfg/jetty.xml</CfgFile> -->
</WebServer>
flaファイルを開く
Examples/AS2/01_simpleConnect/simpleConnect.flaのスクリプトを確認。
  • IPがlocalhostの直指定になってた。
  • サーバーコンソール上でアクセスしてみる→できました。
ポートのアクセス制限を確認
# seedit-unconfined -n
tcp/8080 /web/SFS_PRO_1.6.6/jre/bin/java Unconfined(initrc_t)
tcp/9009 /web/SFS_PRO_1.6.6/jre/bin/java Unconfined(initrc_t)
tcp/9339 /web/SFS_PRO_1.6.6/jre/bin/java Unconfined(initrc_t)
Unconfinedなので、フリーアクセス。
SELinuxを有効にする
SELinuxをEnforceして確認。
http://192.168.1.1/sfs/Admin/AdminTool.swfにログインできた。
途中で適当にOSリブートしたのが効いた?
flaファイルを修正
  1. ローカルPC上に、/web/SFS_PRO_1.6.6/Flash APIを保存
  2. /web/SFS_PRO_1.6.6/Examplesも保存
  3. Examples/AS2/01_simpleConnect/simpleConnect.flaを開く
  4. ここを参照にAS2のFlashAPIを適用
  5. スクリプト内のIPをサーバーのIPに変更
  6. ここここを参考に以下のスクリプトを追加
    System.security.loadPolicyFile("xmlsocket://socketserver.net:9339")
    ("socketserver.net:"は自サーバのドメイン/IPに変更)
  7. ここを参考にlocal-with-networkingでswfを出力
  8. サーバーにアップロード
アクセス確認
  • http://192.168.1.1:8080/Examples/AS2/01_simpleConnect/ にアクセス
    →コネクトに成功
他のサンプルも同様に修正すればコネクト可能。
crossdomain処理
SFSサーバとWebサーバを分ける時はcrossdomainの設定をすること。
以下のどちらかを設定。
  1. DocumentRoot直下にcrossdomain.xmlを作成する
    <?xml version="1.0"?>
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
    <allow-access-from domain="*" />
    </cross-domain-policy>
  2. Config.xmlに以下を記述
    <AutoSendPolicyFile>true</AutoSendPolicyFile>
    <PolicyAllowedDomains>
    <AllowedDomain>*</AllowedDomain>
    </PolicyAllowedDomains>
タグ:1.x Install SFS
posted by poi at 22:32| 1.x Install | このブログの読者になる | 更新情報をチェックする

2009年08月01日

3. Running the Server

3.2 Server Logs

SFSは、、サーバー側で設定された重要度を元にした、多くのサーバーメッセージを、ログファイルやコンソールに出力し記録することができる。また、インストールしたサーバータイプ(standalone / service)に基づき、ログの分割やローテーションを行うための拡張オプションも提供されている。
Basic logging (standalone mode)
デフォルトでは、SFSはWARNINGレベルのメッセージをファイルへ、INFOレベルのメッセージをコンソールへと出力するよう設定されている。
メッセージレベルは低→高まで以下の通り。;
  • FINEST, FINER, FINE, INFO, WARNING, SEVERE
始めの4つのレベルは、サーバーによって行われる、異なる重要度のレベルをもつアクションと関連付けられた簡単な通知である。これらのレベルは、開発者がマルチプレイヤーのアプリケーションをデバッグする時、コンソールでメッセージをトレースするのに有用だ。この方法で、開発者はサーバー側の変数が設定されたり壊れた時、新しいRoomが作られたり削除された時、etc...を見ることができる。
このメッセージの出力は、コンソールだけでなくファイルに出力することもできるが、デバッグの時だけに設定しないと、ログファイルがすぐにとても大きくなってしまうので、お勧めしない。
大抵の場合、製品用の設定としては、ファイルレベルとしてWARNING、コンソールレベルとしてINFOとしておくのが推奨される。
WARNINGメッセージは、稼働中に見出される、予期されない状態について情報を与える。
例えば、様々な理由(ハッキング、クライアント側の単純なプログラミングエラー、etc..)により、不正なリクエストが送信されたかも知れない。
WARNINGの他の例としては、ユーザーが、既に存在している他のユーザーのアカウントでログインしようとした場合や、そのユーザーの為には存在していないRoomにログインしようとした時などがある。
SEVEREメッセージレベルは、サーバーの稼動が止まるような、深刻な問題が進行していることを示している。このエラーが起こる状態は、極めて稀にしか現れない。このメッセージが発生するほとんどの場合は、サーバーが起動しようとした時に、必要なファイルがないか、コンフィグレーションにエラーがある場合である。
ログファイルは、Server/ディレクトリ下のlog/ディレクトリ内にいけば覗くことができる。
無制限にログファイルが大きくなることを避けるために、ログローテーションシステムも提供されている。開発者は、新しいログファイルが作成される前に、ログファイルの最大サイズを指定することができ、また生成可能なファイルの最大数を指定できる。デフォルトでは、ログファイルのサイズは500KB、ファイルの数は5に設定されている。
(詳しくは2.1 Configuration: the basicsを見てね。)
ロギングシステムの設定方法についての詳しいドキュメントは2.1 Configuration: the basicsを見てね。
Advanced logging (service mode)
SFSを、LinuxやWindowsにサービスとしてインストールしていれば、全てのコンソール出力は、Wrapper自身のステータスについての情報も含んだ、ラッパーログファイルへリダイレクトされるだろう。Wrapperはデーモン/サービスとして振舞うソフトウェアで、JVMプロセスをラップしている(SFSはJava Service Wrapperという製品を使用している)
Server/wrapper/ディレクトリにあるwrapper.confファイルを使って、Wrapperロギングオプションを確認したり修正したりできる。デフォルトでは、ログファイルはServer/logs/ディレクトリに保存されており、1日毎に分割されている。
wrapper.confファイルの詳細なドキュメントはこのページを見てね。
posted by poi at 06:52| 3.2 Server Logs | このブログの読者になる | 更新情報をチェックする

2009年07月09日

3. Running the Server

3.1 The Basics

Running the server
SFSを稼動させる為には、システムに対して、Chapter 1.3で示された簡単な手順を行ってね。サーバーが一度稼動しちゃえば、Administrator Toolを使ってモニターしたりコントロールできるよ。
Flash player: connection restrictions and cross-domain policy file
Adobe Flash Playerは、SWFが発行されている外部のドメインにアクセスしようとする時に、多くのセキュリティ制限を提供する。言い換えれば、ムービーが置かれている以外の、他のドメインにsocketコネクションを確立したり、リソースをロードしたりすることは通常はできない。
例えば、SWFファイルがwww.mywebsite.comにあったとすると、Flashプレーヤーはwww.anotherwebsite.comや、mydata.mywebsite.comのようなサードレベルのドメインからでさえ、変数をロードする事を拒否するだろう。
特に、Adobe Flash Player 9.0.115以降のリリースではsocketコネクションに関して新しい制限が設けられている。
これらの制限は、cross-domain policy fileによってコントロールされる。cross-domain policy fileは、シンプルなxmlファイルで、アクセスしたい外部のドメインのWebルートから読み込ませたり、socket経由で提供する事ができる。Flashプレイヤーに外部ドメインを指し示した時、Flashプレイヤーは外部ドメインのWebルートからcross-domain policy fileを読み込みにいき、必要なリソースにアクセスできるかどうかを確認する。
ポリシーファイルのサンプルは以下の通り。
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="www.gotoandplay.it" />
</cross-domain-policy>
ここで最初の2行はドキュメントタイプの宣言。以下の3行を編集しなければならない。この例では、www.gotoandplay.itドメインからのコネクションを許可しているが、4行目を以下のように置換することで、全てのドメインからのアクセスを許可する事ができる。
<allow-access-from domain="*" />
このxmlファイルはcrossdomain.xmlという名前で、自分のサーバーのWebルートに置かなくてはならない。www.gotoandplay.itの場合は、次のURLに置いてある。
  • http://www.gotoandplay.it/crossdomain.xml
Loading policy files via socket
SFSはcross-domain policy fileをsocketコネクションから直接Flashプレイヤーに届ける事ができる。
SFSでは、config.xmlの内部に、様々な方法でカスタムポリシーを定義できる。
<AutoSendPolicyFile>true</AutoSendPolicyFile>
<PolicyAllowedDomains>
<AllowedDomain>gotoandplay.it</AllowedDomain>
<AllowedDomain>smartfoxserver.com</AllowedDomain>
</PolicyAllowedDomains>
config.xmlに記述するかわりに、全てのcross-domain policyを外部ファイルに定義する事もでき、SFSによるsocket経由での提供をするためにconfigを指定する事ができる。
<ExternalPolicyFile>myPolicy.xml</ExternalPolicyFile>
Flashセキュリティモデルの詳細な議論や、Flashプロジェクトに使う為のベストプラクティスについては、Flash Security Policy guidelinesを見てね。
追加のリソースはAdobeのWebサイトにあるよ。
posted by poi at 07:42| 3.1 The Basics | このブログの読者になる | 更新情報をチェックする

2009年07月06日

Linux File Descripors

Linux file descriptors

OSとしてLinuxや他のUNIXを使っている場合は、約1000の同時接続が生じた時に、"Too many open files"エラーが発生するだろう。
心配することは無いよ。デフォルトでは殆どのLinuxディストリビューションは最大1024のファイルディスクリプタにセットされている。ファイルやsocket接続をオープンする度に、このディスクリプタが使用され、最大数に達した時に、先ほどのエラーが表示される。
以下のコマンドにて、システムの現在の設定値を確認する事ができる。
ulimit -n
このコマンドの返り値は、全てのファイルオープン及びsocket接続に対する、OSの現在の限界値である。
新しい数値を同じコマンドに与える事によって、この値を増やす事ができる。
ulimit -n 20000
NOTE: このセッティングは、全体的ではなく、またユーザーセッションが続いている間だけしか続かない。もし管理者がセッションを閉じるか、サーバーをリスタートしたら、ファイルディスクリプターのリミットはデフォルトに戻るだろう。
望む値をSFSの稼働中常にキープしたいならば、ulimitコマンドをstart.sh或はsfsスクリプト内に組み込む必要がある。
Fixing the descriptor limit in the launch scripts
start.shスクリプトは、JVMとサーバーの起動に直接的に使われる。これは以下のような、1行スクリプトである。
java -cp "./:./sfsExtensions/:lib/activation.jar:lib/commons-beanutils.jar...
やるべきことは、単にulimitコマンドを一番上に追加して、セーブすることだけ。
ulimit -n 20000
java -cp "./:./sfsExtensions/:lib/activation.jar:lib/commons-beanutils.jar...
sfsスクリプトは、ネイティブなラッパーを起動し、stsrt、stop、console、restartコマンドに応答する。
スクリプトをテキストエディタで開き、ulimitコマンドをstartセクション(182-183行目)に追加する。
start() {
echo "Starting $APP_LONG_NAME..."
getpid
if [ "X$pid" = "X" ]

etc...
これを以下に変える。
start() {
ulimit -n 8192
echo "Starting $APP_LONG_NAME..."
getpid
if [ "X$pid" = "X" ]

etc...
セーブすれば準備完了。
posted by poi at 06:41| 2.5 Linux File Descript | このブログの読者になる | 更新情報をチェックする

2009年07月04日

Multiple configuration files

Multiple configuration files

デフォルトでは、SFSのConfig設定はConfig.xmlに格納されている。
1.5.5以降は複数のConfigファイルを保存でき、ブート時にどちらのファイルを使うかを指定できるようになった。これは特に、開発の際、異なるサーバーセッティングを置いておきたい時に便利である。
以下に、サーバー起動時にどちらのファイルを使うかを指定する方法を説明する。
Server running standalone
サーバーは、OS毎のスクリプトによってスタンドアローンモードで起動される。
  • Windows: start.bat
  • Linux: start.sh
  • MacOS X: start.sh
  • Other Unix(es): start.sh
異なるConfigファイルを使う為には、/ServerディレクトリにあるStart Scriptをテキストエディタで開く。
  • とても長文のテキストが開かれるだろう。
  • テキストの最終行に移動し、次の記述を探す。
    "it.gotoandplay.smartfoxserver.SmartFoxServer"
  • 一行追加し、使用したいConfigファイルのファイル名を記述する。
  • つまり以下のようになる。
    java -cp ....... lots of text here ...... it.gotoandplay.smartfoxserver.SmartFoxServer myConfig.xml
  • スクリプトをセーブして、サーバーを起動する。
Server running as a service
SFSをサービスとして起動したい時は、JVM(Java Virtual Machine)がサードパーティーのソフトウェアによって、デーモンとして稼動できるようになっている。ので大丈夫よ。
替わりのConfigファイルを指定するために、以下の簡単な手順を踏まなければならないだろう。
  • Server/wrapper/フォルダにあるwrapper.confファイルを編集する。
  • 50行目位まで移動し、以下の行を探す。
    wrapper.app.parameter.1=it.gotoandplay.smartfoxserver.SmartFoxServer
  • 以下の行を、自分のConfigファイル名を使って追加する。
    wrapper.app.parameter.2=myConfig.xml
  • サーバーを起動/再起動する。
posted by poi at 04:50| 2.4 Multiple config | このブログの読者になる | 更新情報をチェックする

2009年07月03日

HTTP Server Configuration

HTTP Server Configuration

1.5.0より、SFSは、Jettyをベースとしたパワフルで効率的で、静的・動的なWebページを提供する事ができるWebサーバーを組み込んでいる。
HTTPサーバーはまたSFSに緊密に統合されているため、Server side extensionでファイルのアップロードを簡単に取り扱う事ができ、サーバーとやり取りするWebページを作り上げる事やその他色々なことさえできる。
加えて、Webサーバーは、ポピュラーなScript言語を使って迅速に動的なWebページを開発する事ができる、Pythonエンジン(jythonベース)も統合している。(もちろん、好みで通常のJavaサーブレットも使用できる)
Web server setup
Webサーバーはconfig.xmlファイルで簡単に設定できる。
<WebServer active="true">
<CfgFile>webserver/cfg/jetty.xml</CfgFile>
</WebServer>
active属性はWebサーバーのon/offを切り替える。
<CfgFile>タグはHTTPサーバーのConfigファイルの場所を指定する。自分が何をやっているかホントに分かっているのでなければ、ここは変えないように。
Web server configuration
デフォルトでは、WebサーバーはSFSで使っているIPと同じIPアドレスのポート8080で稼動している。
Server/webserver/cfg/内のConfigファイルjetty.xmlを編集する事によって、ポート番号やその他のたくさんのセッティングを変更する事ができる。
サーバーが動いているかテストするには、ブラウザを開いて、以下のURLをロードするだけで良い。
http://127.0.0.1:8080
Welcomeページが出ればOK。
Jettyには非常に多くのConfigパラメーターがあるので、セッティングについての詳細はJettyのオンラインドキュメントを見る事を推奨する。(特にここ)
Web applications folder layout
webserver/フォルダの中に、以下のサブディレクトリをもつwebapps/ディレクトリがある。
  • root/
    Webサーバーのrootフォルダ。welcomeページはここにある。このフォルダは静的コンテンツ用に好きに使う事ができる。
  • default/
    SFSで使われるデフォルトのサーブレットが置かれる。この中のファイルは、本当に必要があるのでない限り、変更するべきではない。
  • examples/
    簡単なpyhtonサーブレットをどうやってビルドするかのサンプルがおくつか置いてある。以下のURLを開くことでそのサンプルを確認できる。
    - http://127.0.0.1:8080/examples/SimpleCounter.py
    - http://127.0.0.1:8080/examples/ServerInfo.py
新規のフォルダと、サーブレットのmapping configurationを記述するWEB-INF/ を追加することで、自分のサーブレットを追加する事もできる。
いくつかのチュートリアルのURLを書いておくよ。
タグ:SFS HTTP Server
posted by poi at 02:39| 2.3 Http Server | このブログの読者になる | 更新情報をチェックする