apacheモジュールでmutexを使った排他制御を実装

apacheモジュールでプロセス間通信を行う場合に、共有メモリを使うと色々問題がでてくる。
preforkの性質上、複数のapache子プロセスがフォークされており、それらがそれぞれリクエストに対する処理を行うため、共有メモリ領域の書き込み時に衝突が起きたりして、データに齟齬が発生してくる。

それを防ぐのが排他処理だ。

今回は、aprで実装済みのglobal mutexを使って排他制御する方法を説明する。

続きを読む

apacheモジュールで共有メモリを使ったプロセス間通信

apacheモジュールでプロセス間通信を行う場合、共有メモリを使ってやる手法がある。

apacheモジュールでよく使われるaprで、共有メモリ用の関数が用意されているため、実装に問題が無い以上はaprを使った方が楽だ。

では具体的な使い方を。

続きを読む

Linuxでトラフィックチューニング

tcコマンドやiprouteコマンドでQoSを行うのは結構面倒なので、それをラッパーしたcbq.initを使う。

Kernelでの制限となるので、ミドルウェアに依存せず制限できるのが良い(apacheリスタートとかがいらない)。

クライアントから見てダウンロードしか制限できないのが欠点。

細かい説明は調べたらいっぱい出てくるから、とりあえず使う方法。

# wget http://jaist.dl.sourceforge.net/sourceforge/cbqinit/cbq.init-v0.7.3
# mv cbq.init-v0.7.3 cbq.init
# chmod 755 cbq.init
# cp -p cbq.init /etc/init.d/.
# chkconfig cbq.init on
# cd /etc/sysconfig/cbq/
# vi cbq-[0002-FFFF].(.*)

続きを読む

Alfresco 文書を自動でPDF化メモ

OpenOffice連携と連携させるとPDF化ができそうだ。
修正ファイルは以下。
/usr/share/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/OOoDirect/default/openoffice-transform-context.xml
  • 変更前
<bean id="openOfficeConnection" class="net.sf.jooreports.openoffice.connection.SocketOpenOfficeConnection" />
  • 変更後
<bean id="openOfficeConnection" >
    <constructor-arg type="java.lang.String" value="127.0.0.1"/>
    <constructor-arg type="int" value="8100"/>
</bean>

OpenOffice連携のためのスクリプトを作成し実行してデーモン化しておく

続きを読む