2010年8月29日日曜日

プログラムの実行ログの確認方法

Linuxでプログラムの実行ログの確認する方法は以下のようにすればよい.

$ tail -f /var/log/messages

/var/log/mesagesも重要だけど,個人的には確認する際の,tailコマンドのオプションfの方が重要だったりする.

2010年8月26日木曜日

[Smalltalk] GLASSを起動してみようとしたが,失敗.

GLASSを起動してみようとしたが,失敗.
せっかくサーバを新調したのに,使えないので,ショック.

前回,GLASSをinstallGemstone2.4-Linux.shを使ってインストールしたのだが,Seasideが動作してくれない.Smalltalkのことなのに,すぐに解決できない.情けないorz

installGemstone2.4-Linux.sh入れただけでは,Seasideが動かないのか,きちんとApacheとの連携をしないといけないのか,それとも「ひよっこはVM版を使いなさい!」っということなのか.

失敗したのをメモしようと思う.
書き出してみると,何かわかるかもしれない.

以下の内容を.bashrcに書き込む.
source /opt/gemstone/product/seaside/defSeaside

netldiプロセスを起動し,Gemstoneを起動するために,以下のコマンドを実行.
startnet
startGemstone

以下のコマンドで,Seasideを実行.
startSeaside_Hyper 50081

そして以下のエラー
_____________________________________________________________________________
|                             Configuration Files                             |
|                                                                             |
| System File: /opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/system.conf
|                                                                             |
| Executable File: /opt/gemstone/GemStone64Bit2.4.4.1-x86_64.Linux/seaside/data/gem.conf
|_____________________________________________________________________________|
Using GEM_TEMPOBJ_CACHE_SIZE 50000 from -T command line option
 _____________________________________________________________________________
|               Gem Configuration Options for process id 15795                |
|_____________________________________________________________________________|

DUMP_OPTIONS = TRUE;
GEM_GCI_LOG_ENABLED = FALSE;
GEM_FREE_FRAME_CACHE_SIZE = -1;
GEM_FREE_FRAME_LIMIT = -1;
GEM_HALT_ON_ERROR = 0;
GEM_IO_LIMIT = 5000;
GEM_KEEP_MIN_SOFTREFS = 0;
GEM_MAX_SMALLTALK_STACK_DEPTH = 1000;
GEM_PRIVATE_PAGE_CACHE_KB = 1000;
GEM_PGSVR_FREE_FRAME_CACHE_SIZE = -1;
GEM_PGSVR_FREE_FRAME_LIMIT = -1;
GEM_PGSVR_UPDATE_CACHE_ON_READ = FALSE;
GEM_RPCGCI_TIMEOUT = 0;
GEM_SOFTREF_CLEANUP_PERCENT_MEM = 50;
GEM_TEMPOBJ_AGGRESSIVE_STUBBING = TRUE;
GEM_TEMPOBJ_CACHE_SIZE = 50000;
GEM_TEMPOBJ_INITIAL_SIZE not used on this platform
GEM_TEMPOBJ_MESPACE_SIZE = 0;
GEM_TEMPOBJ_OOPMAP_SIZE = 0;
GEM_TEMPOBJ_POMGEN_SIZE = 0;
GEM_TEMPOBJ_POMGEN_PRUNE_ON_VOTE = 50;
GEM_TEMPOBJ_POMGEN_SCAVENGE_INTERVAL = 1800;
LOG_WARNINGS = TRUE;
SHR_NUM_FREE_FRAME_SERVERS = 1;
SHR_PAGE_CACHE_NUM_SHARED_COUNTERS = 1900;
SHR_PAGE_CACHE_SIZE_KB = 500000;
SHR_PAGE_CACHE_NUM_PROCS = 1017;
SHR_TARGET_FREE_FRAME_COUNT = -1;
(vmGc spaceSizes: eden init 2000K max 9368K , survivor init 400K max 1568K,
 vmGc    old max 37496K, code max 10000K, perm max 5000K, pom 10 * 4168K = 41680K,
 vmGc    remSet 1008K, meSpace max 47800K oopMapSize 262144 )
 _____________________________________________________________________________
|             GemStone/S64 Object-Oriented Data Management System             |
|               Copyright (C) GemStone Systems, Inc. 1986-2010                |
|                            All rights reserved.                             |
|     covered by Patent Number 6,567,905 Generational Garbage Collector.      |
+-----------------------------------------------------------------------------+
|    PROGRAM: topaz, Linear GemStone Interface (Linked Session)               |
|    VERSION: 2.4.4.1, Tue Jul 13 15:19:49 2010                               |
|      BUILD: gss64_2_4_4_x_branch-23813                                      |
|  BUILT FOR: x86-64 (Linux)                                                  |
|       MODE: 64 bit                                                          |
| RUNNING ON: 6-CPU localhost x86_64 (Linux 2.6.18-194.11.1.el5 #1 SMP Tue Aug|
| 10 19:05:06 EDT 2010) 7480MB                                                |
| PROCESS ID: 15795     DATE: 2010年08月26日 06時38分42秒 JST           |
|   USER IDS: REAL=ringo (500) EFFECTIVE=ringo (500)                          |
|   DATEFORMAT: %Y年%m月%d日 %H時%M分%S秒                               |
|_____________________________________________________________________________|
topaz> topaz> topaz> topaz> topaz> topaz> topaz> topaz> [Info]: LNK client/gem GCI levels = 844/844
[Info]: User ID: DataCurator
[Info]: Repository: seaside
[Info]: Session ID: 1
[Info]: GCI Client Host: 
[Info]: Page server PID: -1
[Info]: Login Time: 2010年08月26日 06時38分42秒.198 JST
[2010年08月26日 06時38分43秒.095 JST] gci login: currSession 1 rpc gem processId -1
successful login
topaz 1> topaz 1> [268 sz:0 cls: 68097 Boolean] true
topaz 1> topaz 1> GemStone Smalltalk Compiler Errors:
   | service server site |
   true "enable for remote breakpoints and profiling"
     ifTrue: [
       GemToGemAnnouncement installStaticHandler.
       Exception
         installStaticException:
           [:ex :cat :num :args | 
             BreakpointNotification signal.
             "needed to avoid infinite loop when resuming from a breakpoint"
             ex _incrementBreakpointsToIgnore. ]
         category: GemStoneError
         number: 6005
         subtype: nil.
      System commitTransaction ifFalse: [ nil error: 'Could not commit for GemToGemSignaling' ]].
   
   System transactionMode: #manualBegin.
   
   Exception 
     installStaticException: 
       [:ex :cat :num :args |
         "Run the abort in a lowPriority process, since we must acquire the
          transactionMutex."
         [
           SeasidePlatformSupport transactionMutex 
 *         ^1                                                         *******
             critical: [ 
               SeasidePlatformSupport doAbortTransaction ].
           System enableSignaledAbortError.
         ] forkAt: Processor lowestPriority.
       ]
     category: GemStoneError
     number: 6009
     subtype: nil.
   System enableSignaledAbortError.
   "This thread is needed to handle the SigAbort exception, when the primary
    thread is blocked on an accept. Assuming default 60 second 
    STN_GEM_ABORT_TIMEOUT, wake up at 30 second intervals."
   [ 
     [ true ] whileTrue: [ (Delay forSeconds: 30) wait ].
   ] forkAt: Processor lowestPriority.
   
   
   service := SeasideHTTPService onPort: 50081 acceptInForeground: true multiThreading: false.
 *            ^2                                                                               
   GsFile gciLogServer: 'Hyper Server started on port ', 50081 printString.
   service start.
   "does not return, unless there's an error"

1: [1031] undefined symbol
2: [1031] undefined symbol

Now executing the following command saved from "iferr 1":
   where
Stack is not active
topaz 1> [268 sz:0 cls: 68097 Boolean] true
topaz 1> 


もし,分かる人がいれば,教えていただけるとうれしいです.

2010年8月24日火曜日

Windows 7を購入してみました

いろいろなソフトウェアなどの検証のために,Windows 7を購入してみました.


インストールもXPより楽になっています.また,Vistaのようにログインが遅くありません.

言いたいことはそれだけです.はい.


2010年8月21日土曜日

[Smalltalk] GemStone(GLASS)をインストールしてみた

サーバを新設したので,GemStone(GLASS)をインストールしてみました.

GemStoneは,OODBと説明されるのですが,OODBというより多人数で使えるSmalltalkの処理系の1つだととらえるとしっくりきます.

インストールしたのは,Cent OS 5.5.
GemStoneは64bit環境で動作するため,インストールする際にはご注意を.

http://seaside.gemstone.com/downloads.html よりinstallGemstone.shをダウンロードして,実行する.
このとき,シェルを実行する際は通常ユーザで行ないましょう.

あとは,サーバにインストールして外部に公開する人は,ファイアウォールの設定を変えておきましょう.

GLASS (GemStone Seaside)
http://seaside.gemstone.com/about.html

ちなみに,公式サイトではVMWareのイメージも配布されているので,すぐに使いたい人はそちらでお試しすることができます.

2010年8月5日木曜日

[Command] script

ターミナル入出力をログとして保存するには,scriptを使いましょう.

任意のディレクトリに移動して,以下のコマンドを入力します.
$ script test.log

ログを終了させるには,
$ exit
を入力します.