仕事に関係する情報のメモ 技術、プロジェクト管理など
金曜日, 11月 06, 2009
木曜日, 10月 29, 2009
PowerGress レプリケーション
PowerGres on Linux HA (共有ディスク) 基本 2 台構成 1,890,000 円(税込)
PowerGres on Linux HA (データレプリケーション) 基本 2 台構成 2,415,000 円(税込)
http://powergres.sraoss.co.jp/s/ja/product/ha.php#price
PowerGres on Linux HA (データレプリケーション) 基本 2 台構成 2,415,000 円(税込)
http://powergres.sraoss.co.jp/s/ja/product/ha.php#price
火曜日, 9月 29, 2009
Tomcatログ出力場所の変更
Tomcat5.0.11の場合、以下を追記
【server.xml】
directory="d:/moriusers/logs/tomcat-access" prefix="tomcat_access" suffix=".log"
pattern="common" resolveHosts="false" reloadble="true" fileDataFormat="yyyy-MM-dd" timestamp="true"/>
directory="d:/moriusers/logs/tomcat-error" prefix="tomcat_error" suffix=".log"
timestamp="true" verbosity="1"/>
【server.xml】
pattern="common" resolveHosts="false" reloadble="true" fileDataFormat="yyyy-MM-dd" timestamp="true"/>
timestamp="true" verbosity="1"/>
月曜日, 9月 28, 2009
Word 変更履歴
何人かでWord(ワード)文書のやり取りをする際に、変更箇所や削除箇所が分かるように「変更履歴を記録する」機能を使うことがあります(「ツールバー」より「変更履歴の記録(T)」を選択)。
デフォルトでは校閲者別に青と赤の字で誰が、どこを変更/削除したのかが分かるようになりますが、内容が確定し、最終的にファイルを公開したり、決裁権者に送った場合に、変更履歴やコメントが残ったままだと余りにも見た目がよくありません。
オプションでコメント・変更履歴の表示・非表示を切り替えることができますが、これはそのパソコンのみの設定を切り替えるもので、ファイルそのものの設定ではないので、別のパソコンがコメント・変更履歴を表示する設定だと見えてしまいます。
コメント・変更履歴を消して最新の校正の状態にするには、「ツールバー」から「チェック/コメントツールバー」を表示し、「変更の承諾」ボタンの横の▼から「ドキュメント内のすべての変更を反映」を選べばOKです。
デフォルトでは校閲者別に青と赤の字で誰が、どこを変更/削除したのかが分かるようになりますが、内容が確定し、最終的にファイルを公開したり、決裁権者に送った場合に、変更履歴やコメントが残ったままだと余りにも見た目がよくありません。
オプションでコメント・変更履歴の表示・非表示を切り替えることができますが、これはそのパソコンのみの設定を切り替えるもので、ファイルそのものの設定ではないので、別のパソコンがコメント・変更履歴を表示する設定だと見えてしまいます。
コメント・変更履歴を消して最新の校正の状態にするには、「ツールバー」から「チェック/コメントツールバー」を表示し、「変更の承諾」ボタンの横の▼から「ドキュメント内のすべての変更を反映」を選べばOKです。
木曜日, 9月 17, 2009
火曜日, 9月 15, 2009
SSLなしでログイン画面
チャレンジレスポンス認証
チャレンジ/レスポンス方式では、まず認証を受けたいクライアントが認証要求をサーバに送り、サーバはそれに対しランダムな数値列(「チャレンジ」と呼ばれる)を返信する。クライアントは、ユーザが入力したパスワードとチャレンジを特定のアルゴリズムに従って合成し、「レスポンス」と呼ばれる数値列を作成し、サーバに送信する。サーバ側では、送信したチャレンジとあらかじめ登録されたそのユーザのパスワードから同じようにレスポンスを作成し、送られてきたレスポンスと比較する。レスポンスが一致すれば、パスワードは正しいことになり、認証成功となる。
レスポンスの生成は一方向関数などによって行なわれ、レスポンスだけを入手しても元のパスワードを割り出すことができないようになっている。平文のパスワードではなくチャレンジとレスポンスを送受信することにより、パスワードなどが盗聴されるのを防ぐことができる。
チャレンジ/レスポンス方式では、まず認証を受けたいクライアントが認証要求をサーバに送り、サーバはそれに対しランダムな数値列(「チャレンジ」と呼ばれる)を返信する。クライアントは、ユーザが入力したパスワードとチャレンジを特定のアルゴリズムに従って合成し、「レスポンス」と呼ばれる数値列を作成し、サーバに送信する。サーバ側では、送信したチャレンジとあらかじめ登録されたそのユーザのパスワードから同じようにレスポンスを作成し、送られてきたレスポンスと比較する。レスポンスが一致すれば、パスワードは正しいことになり、認証成功となる。
レスポンスの生成は一方向関数などによって行なわれ、レスポンスだけを入手しても元のパスワードを割り出すことができないようになっている。平文のパスワードではなくチャレンジとレスポンスを送受信することにより、パスワードなどが盗聴されるのを防ぐことができる。
水曜日, 9月 02, 2009
Windowsのサービス登録
sc create hoge binPath= "C:\Program Files\hoge\hoge.exe"
ただし、batファイルなどは登録できるが、起動できないようだ。
ただし、batファイルなどは登録できるが、起動できないようだ。
金曜日, 8月 28, 2009
postgreSQL他ホストからの接続
pg_hba.confの設定だけでよいのかと思っていたが、PostgreSQL8.3で確認したところ、postgresql.cnfの設定も必要だった。
ポート開放,postgresql.confのlisten_addressesの設定,pg_hba.confでhost関連の行追加,PostgreSQL再起動
ポート開放,postgresql.confのlisten_addressesの設定,pg_hba.confでhost関連の行追加,PostgreSQL再起動
月曜日, 8月 24, 2009
Windows同時使用可能ポート数
デフォルト値5000
E社案件の初期データ登録時(2万5千件)に問題発生
"netstat -an"の結果、TIME_WAITが多数発生しており、TCPコネクションが確保できなかったため発生した可能性が高い。
Windowsでは、TIME_WAIT状態のコネクションが開放されるまで、デフォルト値4分で設定されている。
「ソケットの最大数」、「TIME_WAITの時間」はそれぞれ以下のレジストリを変更して設定します。項目がない場合は追加します。
■ソケットの最大数(5,000~65,534の間で設定):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort (DWORD)
■TIME_WAITの時間(30~300秒の間で設定):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay (DWORD)
※設定後は再起動しないと設定が反映されません。
http://msdn.microsoft.com/ja-jp/library/aa560610(BTS.10).aspx
http://nosa.cocolog-nifty.com/sanonosa/2006/04/windowstime_wai_00d2.html
E社案件の初期データ登録時(2万5千件)に問題発生
"netstat -an"の結果、TIME_WAITが多数発生しており、TCPコネクションが確保できなかったため発生した可能性が高い。
Windowsでは、TIME_WAIT状態のコネクションが開放されるまで、デフォルト値4分で設定されている。
「ソケットの最大数」、「TIME_WAITの時間」はそれぞれ以下のレジストリを変更して設定します。項目がない場合は追加します。
■ソケットの最大数(5,000~65,534の間で設定):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort (DWORD)
■TIME_WAITの時間(30~300秒の間で設定):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay (DWORD)
※設定後は再起動しないと設定が反映されません。
http://msdn.microsoft.com/ja-jp/library/aa560610(BTS.10).aspx
http://nosa.cocolog-nifty.com/sanonosa/2006/04/windowstime_wai_00d2.html
月曜日, 8月 03, 2009
WindowでのTomcatサービス
Tomcatで使用するJAVAは、Windowsのサービス起動の場合は、レジストリに設定
されているようです。
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun
2.0\Tomcat5\Parameters\Java\Jvm
されているようです。
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun
2.0\Tomcat5\Parameters\Java\Jvm
金曜日, 7月 31, 2009
JDK、TomcatサポートOS
JDK5.0Update18、Tomcat5.5.27のWindows2003SP1パッチ対応について調査した結
果です。
【JDK5.0Update18】
JDK5.0については、「Windows Server Standard Edition 2003」のサポート対象
となっており問題はありません。
Updateバージョンについては特に言及はありませんが、今回使用している
「JDK5.0Update18」の
ダウンロードページからのリンク先でのサイトで「Windows Server Standard
Edition 2003」がサポート対象となっています。
R2のSP1パッチに「対応している」ということまでは調べ切れませんでしたが、
逆に「対応していない」という情報もSunのサイト、MicroSoft のサイトともに
記載はありませんでした。
参照サイト
→Java[tm] 2 Platform 5.0 サポート対象のシステム構成
http://java.sun.com/j2se/1.5.0/ja/system-configurations.html
→JAVA ヘルプセンター → Windows の動作環境
http://www.java.com/ja/download/help/win_manual.xml#download
※JDK6.0について
JDK6.0については、「Windows Server 2003」はサポート対象となっています。
参照サイト
→Java[tm] 2 Platform 6.0 サポート対象のシステム構成
http://java.sun.com/javase/ja/6/webnotes/install/system-configurations.html
<その他>
JDK5.0、JDK6.0ともに、サポート対象システムに「 R2」とまでは明示はしてい
ません。
【Tomcat5.5.27】
「Tomcat 5.5 is designed to run on J2SE 5.0 and later」となっており、
JDK5.0(J2SE Development Kit 5.0)が動作するOSであることが条件なので、
Windowsのパッチ適用は動作条件に影響はないと考えられます。
参照サイト
→RELEASE-NOTES
http://tomcat.apache.org/tomcat-5.5-doc/RELEASE-NOTES.txt
果です。
【JDK5.0Update18】
JDK5.0については、「Windows Server Standard Edition 2003」のサポート対象
となっており問題はありません。
Updateバージョンについては特に言及はありませんが、今回使用している
「JDK5.0Update18」の
ダウンロードページからのリンク先でのサイトで「Windows Server Standard
Edition 2003」がサポート対象となっています。
R2のSP1パッチに「対応している」ということまでは調べ切れませんでしたが、
逆に「対応していない」という情報もSunのサイト、MicroSoft のサイトともに
記載はありませんでした。
参照サイト
→Java[tm] 2 Platform 5.0 サポート対象のシステム構成
http://java.sun.com/j2se/1.5.0/ja/system-configurations.html
→JAVA ヘルプセンター → Windows の動作環境
http://www.java.com/ja/download/help/win_manual.xml#download
※JDK6.0について
JDK6.0については、「Windows Server 2003」はサポート対象となっています。
参照サイト
→Java[tm] 2 Platform 6.0 サポート対象のシステム構成
http://java.sun.com/javase/ja/6/webnotes/install/system-configurations.html
<その他>
JDK5.0、JDK6.0ともに、サポート対象システムに「 R2」とまでは明示はしてい
ません。
【Tomcat5.5.27】
「Tomcat 5.5 is designed to run on J2SE 5.0 and later」となっており、
JDK5.0(J2SE Development Kit 5.0)が動作するOSであることが条件なので、
Windowsのパッチ適用は動作条件に影響はないと考えられます。
参照サイト
→RELEASE-NOTES
http://tomcat.apache.org/tomcat-5.5-doc/RELEASE-NOTES.txt
水曜日, 7月 29, 2009
postgreSQL レプリケーション
PostgresForest
http://www.thinkit.co.jp/free/article/0603/10/4/
RDBMSでいうプリケーションとは、ある1つのデータベースをまったく同じ内容で複製し、複製したデータベース(レプリカ)をネットワーク上に複数配置する機能です。
マルチマスタ方式
本番データベースに対する更新がすべての複製データベースに遅延なく反映され、常に同じデータを格納する方式。よって、本番/複製を問わずにすべてのデータベースは更新/検索ともに可能
マスタスレーブ方式
マスタデータベースの更新データが順次スレーブデータベースに反映される方式です。よって、スレーブデータベースは検索用途に限定される。
マルチマスタ方式のPGClusterやpgpool
マスタスレーブ方式のSlony-l
MySQLは、標準でマスタスレーブ方式のレプリケーション機能を持っています
【pgpool】
http://www.thinkit.co.jp/article/98/3/
pgpool-Ⅱとなった
pgpool-IIは、Linuxをはじめ、SolarisやFreeBSDなどのほとんどのUNIX環境で動作します。Windowsでは動きません。対応するPostgreSQLのバージョンは、PostgreSQLの6.4以降です。
【PGCluster】
Windows非対応
http://www.thinkit.co.jp/free/article/0603/10/4/
RDBMSでいうプリケーションとは、ある1つのデータベースをまったく同じ内容で複製し、複製したデータベース(レプリカ)をネットワーク上に複数配置する機能です。
マルチマスタ方式
本番データベースに対する更新がすべての複製データベースに遅延なく反映され、常に同じデータを格納する方式。よって、本番/複製を問わずにすべてのデータベースは更新/検索ともに可能
マスタスレーブ方式
マスタデータベースの更新データが順次スレーブデータベースに反映される方式です。よって、スレーブデータベースは検索用途に限定される。
マルチマスタ方式のPGClusterやpgpool
マスタスレーブ方式のSlony-l
MySQLは、標準でマスタスレーブ方式のレプリケーション機能を持っています
【pgpool】
http://www.thinkit.co.jp/article/98/3/
pgpool-Ⅱとなった
pgpool-IIは、Linuxをはじめ、SolarisやFreeBSDなどのほとんどのUNIX環境で動作します。Windowsでは動きません。対応するPostgreSQLのバージョンは、PostgreSQLの6.4以降です。
【PGCluster】
Windows非対応
木曜日, 6月 11, 2009
UTF-8
ASCII文字と互換性を持たせるために、ASCIIと同じ部分は1バイト、その他の部分を2~6バイトで符号化する。
1バイト目の上位ビットの1の個数でその文字のバイト数が判るようになっている。また、2バイト目以降は10で始まり、1バイト目と2バイト目以降では値の範囲が重ならないので、文字境界を確実に判定できる。
0xxxxxxx (00-7f) 7bit
110yyyyx 10xxxxxx (c0-df)(80-bf) 11bit
1110yyyy 10yxxxxx 10xxxxxx (e0-ef)(80-bf)(80-bf) 16bit
11110yyy 10yyxxxx 10xxxxxx 10xxxxxx (f0-f7)(80-bf)(80-bf)(80-bf) 21bit
1バイト目の上位ビットの1の個数でその文字のバイト数が判るようになっている。また、2バイト目以降は10で始まり、1バイト目と2バイト目以降では値の範囲が重ならないので、文字境界を確実に判定できる。
0xxxxxxx (00-7f) 7bit
110yyyyx 10xxxxxx (c0-df)(80-bf) 11bit
1110yyyy 10yxxxxx 10xxxxxx (e0-ef)(80-bf)(80-bf) 16bit
11110yyy 10yyxxxx 10xxxxxx 10xxxxxx (f0-f7)(80-bf)(80-bf)(80-bf) 21bit
火曜日, 6月 02, 2009
Linux tomcat5.5 dbcp 接続
Linux tomcat5.5でrpmインストールした場合、
naming-factory-dbcp.jar
が配置されず、以下のようなエラーが出る。
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory ClassNotFoundException
windows版の5.5から、naming-factory-dbcp.jar
を持っていき、配置したらOKとなった
naming-factory-dbcp.jar
が配置されず、以下のようなエラーが出る。
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory ClassNotFoundException
windows版の5.5から、naming-factory-dbcp.jar
を持っていき、配置したらOKとなった
木曜日, 5月 28, 2009
火曜日, 5月 26, 2009
eclipse プロパティファイル文字化け対応
PropertiesEditorプラグイン
http://sourceforge.jp/projects/propedit/files/
Javaプロジェクトのパッケージ・エクスプローラーに表示されているプロパティファイルをクリックして開くだけで、PropertiesEditorでプロパティファイルを編集できます。PropertiesEditorで編集できない場合は、一度ファイルを閉じてプロパティファイルを右クリック→「アプリケーションから開く」→「PropertiesEditor」を選択してください。後は、通常のテキストエディタの操作と同じです。ファイルは保存されると自動的にUnicodeエスケープ形式で保存されます。
http://sourceforge.jp/projects/propedit/files/
Javaプロジェクトのパッケージ・エクスプローラーに表示されているプロパティファイルをクリックして開くだけで、PropertiesEditorでプロパティファイルを編集できます。PropertiesEditorで編集できない場合は、一度ファイルを閉じてプロパティファイルを右クリック→「アプリケーションから開く」→「PropertiesEditor」を選択してください。後は、通常のテキストエディタの操作と同じです。ファイルは保存されると自動的にUnicodeエスケープ形式で保存されます。
金曜日, 4月 03, 2009
Oracleのエラー
OracleのEnterpriseManagerで、OracleのERRORが出されていた。
ログファイルを見てみると、Oracleのエラーとそのトレースファイル(***.trc)の指定があったので、
それをサポートに送った。
ログファイルを見てみると、Oracleのエラーとそのトレースファイル(***.trc)の指定があったので、
それをサポートに送った。
木曜日, 3月 05, 2009
水曜日, 2月 25, 2009
Excelで特定のセルに値が入力されたら、範囲指定してセルの色を変えるサンプル
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, y As Integer
x = Target.Column
y = Target.Row
If Target.Column = 14 And Target <> "" Then '値が入っているなら
Range(Cells(Target.Row, 8), Cells(Target.Row, 15)).Select
With Selection.Interior
.ColorIndex = 48
.Pattern = xlSolid
End With
Else
Range(Cells(Target.Row, 8), Cells(Target.Row, 15)).Select
With Selection.Interior
.ColorIndex = 0
.Pattern = xlSolid
End With
End If
Cells(y + 1, x).Select
End Sub
Dim x, y As Integer
x = Target.Column
y = Target.Row
If Target.Column = 14 And Target <> "" Then '値が入っているなら
Range(Cells(Target.Row, 8), Cells(Target.Row, 15)).Select
With Selection.Interior
.ColorIndex = 48
.Pattern = xlSolid
End With
Else
Range(Cells(Target.Row, 8), Cells(Target.Row, 15)).Select
With Selection.Interior
.ColorIndex = 0
.Pattern = xlSolid
End With
End If
Cells(y + 1, x).Select
End Sub
火曜日, 2月 17, 2009
Oracle Export,Import
①データのエクスポート
タスクスケジューラで毎日1:00から"ダンプ取得.bat"を実施
ダンプ取得.bat
////////////////////////////////////////////////////////////////
SET yyyymmdd=%DATE:/=%
SET yyyymmdd=%yyyymmdd: =0%
SET hhmmss=%TIME::=%
SET hhmmss=%hhmmss: =0%
SET hhmmss=%hhmmss:~0,6%
SET dmp_name=exp%yyyymmdd:~0,8%_%hhmmss:~0,6%.dmp
F:
cd \SPS\DBダンプ\
exp kobaiuser/kobai file=%dmp_name%
////////////////////////////////////////////////////////////////
②データのインポート
"03_IMP_sps.par"のfile部分を修正し、"04_IMP_sps.bat"を実行
04_IMP_sps.bat
////////////////////////////////////////////////////////////////
imp PARFILE=03_IMP_sps.par
////////////////////////////////////////////////////////////////
03_IMP_sps.par
////////////////////////////////////////////////////////////////
userid=system/devadmin
fromuser=kobaiuser
touser=kobaiuser
file=exp20090217_010000.dmp
log=IMP_sps.log
buffer=163840
ignore=Y
grants=N
indexes=Y
rows=Y
DESTROY=N
COMMIT=Y
////////////////////////////////////////////////////////////////
タスクスケジューラで毎日1:00から"ダンプ取得.bat"を実施
ダンプ取得.bat
////////////////////////////////////////////////////////////////
SET yyyymmdd=%DATE:/=%
SET yyyymmdd=%yyyymmdd: =0%
SET hhmmss=%TIME::=%
SET hhmmss=%hhmmss: =0%
SET hhmmss=%hhmmss:~0,6%
SET dmp_name=exp%yyyymmdd:~0,8%_%hhmmss:~0,6%.dmp
F:
cd \SPS\DBダンプ\
exp kobaiuser/kobai file=%dmp_name%
////////////////////////////////////////////////////////////////
②データのインポート
"03_IMP_sps.par"のfile部分を修正し、"04_IMP_sps.bat"を実行
04_IMP_sps.bat
////////////////////////////////////////////////////////////////
imp PARFILE=03_IMP_sps.par
////////////////////////////////////////////////////////////////
03_IMP_sps.par
////////////////////////////////////////////////////////////////
userid=system/devadmin
fromuser=kobaiuser
touser=kobaiuser
file=exp20090217_010000.dmp
log=IMP_sps.log
buffer=163840
ignore=Y
grants=N
indexes=Y
rows=Y
DESTROY=N
COMMIT=Y
////////////////////////////////////////////////////////////////
金曜日, 1月 09, 2009
VLOOKUP関数のポイント
押さえておくべきVLOOKUP関数のポイントは次のとおりです。
●検索は、指定した表の「左端列」で行われます。
●取り出したいデータ位置は、指定した表の「左端から何列目か」で指定します。
●VLOOKUP関数は「検索結果を表示したいセル」に入力します。
=VLOOKUP(A1,B3:G12,3,FALSE)
引数1:A1カラムの値を検索
引数2:B3:G12の範囲のテーブルで検索
引数3:4番目の列の値を取得
引数4:「検索の型」。検索したいデータが表の左端列で見つからなかった場合にどうするか。FALSEを指定すると、データが見つからなかった場合、「#N/A」エラーが表示されます。
●検索は、指定した表の「左端列」で行われます。
●取り出したいデータ位置は、指定した表の「左端から何列目か」で指定します。
●VLOOKUP関数は「検索結果を表示したいセル」に入力します。
=VLOOKUP(A1,B3:G12,3,FALSE)
引数1:A1カラムの値を検索
引数2:B3:G12の範囲のテーブルで検索
引数3:4番目の列の値を取得
引数4:「検索の型」。検索したいデータが表の左端列で見つからなかった場合にどうするか。FALSEを指定すると、データが見つからなかった場合、「#N/A」エラーが表示されます。
登録:
投稿 (Atom)