»
S
I
D
E
B
A
R
«
Your Database in the Cloud.
5月 30th, 2009 by kwin
Your_Database_in_the_cloud

Your_Database_in_the_cloud

SDS の CTP もまもなく開始されるらしい。

The SQL Data Services Community Technology Preview (CTP) will be available soon. You can join the mailing list in order to receive an e-mail notification when it will become available.

mailing list アクセスのダッシュボードのリンクを記録しておくことに。

https://connect.microsoft.com/dashboard/

New_Windows_Azure_Storage_Table_and_Blog_Features_May2009

New_Windows_Azure_Storage_Table_and_Blog_Features_May2009

Windows Azure Storage の方もトランザクション機能
などが追加されてきている

Entity Group Transactions for Windows Azure Table – It is now possible to perform a transaction across entities stored within the same table and same partition
Copy Blob for Windows Azure Blob
Get Block List for Windows Azure Blob

Open Source ERP Openbravo 目次
5月 26th, 2009 by kwin
Acceptance Testing

2.2 Administration master data

2.3 Accounting


2.5 Procurement management 仕入れ

2.6 Sales Management

2.7 Production management

Installation and setup of Eclipse IDE
Install on Openbravo ERP 2
5月 25th, 2009 by kwin
Virtual Machine Appliance
SVN から取得した最新バージョン 2.50 で
http://localhost:8088/openbravo/
にてアクセス可能となったので Acceptance Test をこの環境で実行。
最初の client (このERPソフトを使う会社名のこと)の登録で
Currency(通貨)を設定する必要があるのだが、この List of Values に値が表示されない。
c_currency テーブルに値が insert されていない。 Seed Data 未登録。
コマンドラインから ant で creata database する方法はわかったが …

C:\pleiades\workspace\openbravo>ant create.database -Dapply.on.create=true

にてまず、 dopr user xxx cascade;  してから、再作成を開始する。
ただ、 Tomcat が起動したままだと ”接続中のユーザーは削除できません”ので注意。

sampledata や reference data の登録の部分は動作しないようなので、 2.40 の環境から
c_currency テーブルの内容を exp して imp table=c_currency ignore=y することで
currency は表示されるようにはなったが、 client の登録で失敗する。

これは実に簡単にインストールが完了する。
VMware Player がインストールされていれば、これようのファイルをダウロードして
解凍してえられる vmx ファイルを  VMware Player で開くと窓のなかで OS が
起動し、 プロンプトに表示される URL にアクセスすると
OpenBravo の ERP ソフトを利用できるようになっている。

Port 80 で起動しているのでこれまでだめだった Heartbeat テストもクリア。

Tera Term などで Virtual Machine (192.168.1.2:22 でユーザー openbravo) に Loginできる。

# su – postgres
$ psql -l
List of databases
Name | Owner | Encoding
———-+———-+———-
openbravo | tad | UTF8
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(4 rows)

\i xxx.sql
\q

$ psql openbravo -f xxx.sql

ファイル名を指定して PostgresSQL で SQLを実行するため、ファイル共有に
VMware Player のフォルダ共有機能を利用しようとしたが、 Windows 2008 Server の
共有機能とのからみか、なかなかうまくいかず、また時間を費やしてしまった。

/usr/bin/vmware-config-tools.pl

にてVMware Player の表示画面のサイズを変更して大きくする方法がわかったことは成果としてある。
設定変更の反映には再起動が必要
ただし、今回の Virtual Machine では X11R6 は含まれないため、画面表示のサイズ変更にはメリットはなし。

$ sftp ユーザー名@ホスト名
にて Linux 側の設定なしでファイル転送は可能であったので、
cygwin に Net – OpenSSH と OpenSSL をいれて、 sftp を使用することに。
FileZilla では sftp://192.168.1.2@openbravo
Install on Openbravo ERP
5月 22nd, 2009 by kwin

MRP が動作するということでインストールした Open Source ERP Openbravo。

現在の最新バージョンは 2.50 で Windows用の Installer が一つ前の 2.40 ではサポートされていたこともあり、このバージョンを x64環境 で稼動させ、Acceptance Test を実行してみた。

まず、いきなり  「 1.Initial client setup」 で M_Pricelist.C_Currency_ID に Null を登録しようとして ORA-1400 となる。 このエラーにもかかわらず、 client が登録されてしまうため 「 2.Delete client 」を必然的に行なうことになる。

alter table m_pricelist modify ( c_currency_id number(10) null ) ;

して先に進むと検索で ORA-00600: 内部エラー・コード、引数: [evapls1]

確かに Oracle 10g XE は推奨されていない。

alter system set “_optimizer_filter_pred_pullup”=false;

して先に進む。

ようやくマスターデータの登録をクリアし、在庫の操作を行なうも、 Stock Report が表示されない。
個別のPatch を適用するためにはやはり SVN からのインストールが必要。

Eclipse をいれ、SVN から 2.40 を取得。
( Eclipse 用の SVNなど多数のPluginが必要であり Pleiades が便利)

なんとか Build して在庫レポートの表示はクリアする。

ついでに  この表示も解消された。

しかし、先に進めるにどうも この 2.40 というバージョンはやめた方がいいという、
当初の勘が正しかったことを確信しだした。 (2.35 を使ってみないとなんともいえないが)

SVN からのインストールは成功しているので、まだ期待を込めて 2.35 に戻らずに
新しいバージョン 2.50 のソースを入手。

同じことをすればいいいはずが、Build がうまくいかない。

64bit と関連した問題かと思い、 x86 にも Oracle と Eclipse を Pleiades から
Tomcat ごと入れて Build してみてエラーはでたものの、何とか動作させたが、
64bit の問題ではなかったような気がする。

ERP は SDK ごと入れないと事実上意味がない。
ERP は よくない機能
(営業上、機能としてブローシャにないと困るのでとってつけたようなモジュール)
よくないバージョン
(失敗と明言しないまでも、既に次のバージョンに重心が移っている)
は避けて使わなくてはならない。
当然、この手のことに気づかされないままプロジェクトが進んでしまったら、
行き詰まりますが、ここで無理をするとさらに大変なことに…

Read the rest of this entry »

SQLServerDriver for PHP
5月 15th, 2009 by kwin
PHP用の SQL Server ドライバは何種類かあるが、 Code Conversion 機能があるものはない(?)ようであるが、この確認にあたり、環境により接続できたり 、出来なかったり苦労したため、再度無駄な時間を費やさないための記録。
extension=php_sqlsrv.dll
extension=php_sqlsrv_ts.dll
extension=php_mssql.dll
extension=php_dblib.dll
接続 / Connect
  • php_mssql.dll ** では ntwdblib.dll のバージョンが古いと接続できない (バージョン 2000.80.194.0 は OK, 2000.80.0 は NG) という不具合があるので注意。
  • また、デフォルトの Windows認証 モードでは SQL Server認証によるログインはでない。
    (SQL Server Management Studio でサーバのプロパティ(セキュリティ)を変更)
  • そして SQL Server構成マネージャにて TCP/IP も有効にしておく必要がある。

文字コード変換 / Code Conversion

  • php_sqlsrv.dll ( php_sqlsrv_ts.dll  この dll はThread Safe版についてはファイル名を変えているが、同じファイル名のまま thread と no thread のものがあるので注意) は Vesion1.1 にて UTF-8 ハンドリング対応予定であるが、April 2009 Cumulative Update のバージョンは 1.0 の状態であり、 1.1 が待たれる。 

     

  • php_dblib.dll (Free TDS)を利用することで SugarCRM *1 や moodle *2では SQL Server を UTF-8 で使用する説明がされている。 しかし、どうやら Windows ではうまく接続ができない。- 参考 -

Re: FastStack Windows Installer for 5.2.0c with SQL Server: Is FreeTDS necessary or not

Free TDS is necessary when installing SugarCRM in a Linux/Unix Machine and MS SQL in a Windows Machine.
Actually Free TDS is a connector for MSSQL in Linux.
So you do not need Free TDS in a WAMP stack.

Yes, your problem is due data conversion between MySQL and SQL Server.
The current version of SQL Server does not support Unicode charset, so you need to dump the mysql database, convert the file from Unicode to Iso-8859-1 and import it into SQL Server.

@odbc_connect

Driver

ODBC driver to use:
{SQL Server} – Legacy SQL Server driver
{SQL Native Client}SQL 2005 Native Client
{SQL Server Native Client 10.0}SQL 2008 Native Client

 

PHP.ini

php_mssql.dll にてWindows認証を利用する場合 On

; Use NT authentication when connecting to the server
mssql.secure_connection = Off
;mssql.secure_connection = On

Linux などで FreeTDS(php_dblib.dll ?) を利用して Code Conversion する場合に設定

; Specify client character set.
; If empty or not set the client charset from freetds.comf is used
; This is only used when compiled with FreeTDS
mssql.charset = “ISO-8859-1″
;mssql.charset = “utf-8″

Test Script


C:\>sqlcmd -U test -P test -S TEST\SQLEXPRESS

utf-8 / Shift-JIS

$dbhost = ‘test\SQLEXPRESS’ ;
$dbuser = ‘test’ ;
$dbpassword = ‘test’ ;
$dbname = ‘test’;
$query = “SELECT name FROM test.dbo.accounts”;

// php_mssql.dll http://www.mmdb.net/m_kaneko/php/mssql.htm
$db = mssql_connect($dbhost, $dbuser, $dbpassword);
$res = mssql_query($query,$db);
while($row = mssql_fetch_array($res)){
echo $row['name'].”
” ;
}
mssql_free_result($res);
mssql_close();

// http://www.agtech.co.jp/html/v8manuals/linux/linuxcon6.html
$db = @odbc_connect(”Driver={SQL Server Native Client 10.0};Server=$dbhost;Database=$dbname;”, $dbuser, $dbpassword);
$result = odbc_exec($db, $query);
$i = 0 ;
$numcols = odbc_num_fields($result);
while(odbc_fetch_row($result))
{
while ($i < $numcols)
{
$i++;
$row = odbc_result($result, $i);
echo $row . ”
” ;
}
$i = 0;
}
odbc_close($db);
?>


*1 SugarCRM は SQL Sever対応しているが nvarcharタイプを使用していないことから、 Free TDS を利用してコード変換、あるいは php_sqlsrv.dll が UTF-8ハンドリング対応したとしても列の属性変更が必要と思われる。
 関連 SQL Serverを使う場合はUCS-2への変換が必要

*2 SQL Server 2000 だと接続できるか(?)

SQL Server 2008 Express に IIS7+FasdtCGI で mssql_connect(php_mssql.dll) するときは ntwdblib.dll は不要

Install Maniax 2009
5月 14th, 2009 by kwin
  
Install Manaix 2009

Install Manaix 2009

今回   http://x64.museum-in-cloud.com/ 

・ リストにないオープンソース・アプリケーション
・ SQL Server 対応
・ PHP + Windows Azure 関連
を中心にコンテストに参加することにしました。

また、画像ファイルは Windows Azure の
Blob Storage を利用することにしました。 

画像が表示されない場合、 Windows Azure
 で走らせている自作の PHP プログラムの不具合の可能性が高いです。
上図の画像の URL は以下のようになっています。 
http://museum.cloudapp.net/AzureStorages/InstallManiax2009.jpg

Tomcat + IIS7 関連では 64bit OS  の罠にはまり、苦労しました。 

主なインストール一覧 とそのダウンロードしたサイトのURL

phpMyadmin
Wordpress on SQL Server                     http://x64.museum-in-cloud.com/wpmssql/
Windows Azure Storage from PHP   
CakePHP + IIS7 URL Rewrite               http://cakephp.jp/
Windows Live ID – PHP QuickStart  
Tomcat on Windows2008 x64    
Tomcat6.x+IIS7+Windows2008(x64)    
Openbravo on Windows2008(x64)       http://www.openbravo.com/downloads/
SugarCRM on SQL Server2008        http://www.sugarforge.org/content/downloads/ Windows Azure SDK – CloudDrive    
Windows Sharepoint Services 

Read the rest of this entry »

Age of Shift-JIS
5月 7th, 2009 by kwin

html ファイルの charset を Shift-JIS にして、データベースの charset も Shift-JIS にすれば文字化けしない、という時代はもう終わっていた。  Wordpress のフォルダを UTF-8 で grep して Shift-JIS に replace してもだめで、それでNET を検索して「時代遅れ」に気がついた。 ( 追記 : wp-admin で Shift-JIS も指定できました )

 

Shist-JISでWordPress (8 件の投稿) 
http://ja.forums.wordpress.org/topic/896 

Shift_JIS のウェブサイトを作るべきではありません。静的な HTML で作るならばあまり問題ないのですが、WordPress のようなウェブアプリケーションを通して Shift_JIS のサイトを提供する場合、不正なマルチバイト文字列を利用したセキュリティホール (XSS 脆弱性) が発生しやすくなります。
(適当に検索エンジンで見つけた資料)
マルチバイト文字とXSS脆弱性 (IT Pro)
PHP 利用時に Shift_JIS で addslashes() によるエスケープ処理に SQL インジェクション可能な穴(star_dust の書斎)
あと、実用面でも、Shift_JIS は AJAX との整合性が悪いため、ダッシュボードのフィードが文字化けしたりなど、不便が多いです。  

EUC 専門だった Sun が Solaris で Shift-JIS 対応した時は NEC漢字はどうするなど、大騒ぎだったらしい。

環境変数 NLS_LANG による文字コード変換が得意な Oracle も Shift-JIS, EUC に加えて UCS2/UTF-8 のギャップから JA16SJISTILDE ,JA16EUCTILDE *1なる文字コードセットまでつくりだしていた。 

 Sun は Oracle に買収され、今度はマイクロソフトが UCS2/UTF-8 のハンドリングを PHP用の新しい SQL Server ドライバ でやるはめになる。 

いつのまにかイリーガルとなった Shift-JIS

 

*1 この文字コードセットが原因で随分長い間、原因不明のまま動作しなかった製品で苦労しましたという人の話を聞いたときは、やはりと。 

Read the rest of this entry »

CloudDriveでWindows Azure Logsをみる
5月 1st, 2009 by kwin
 
SDK 環境では動作しても Cloud にもっていくと Internal Server Error になることがある。
 
 Windows Azure Logs Viewer の記事を読んで Copy ボタンをクリックすると Log ファイルが Azure Storage にコピーされることを知った。
 
さっそく Cloud Storage Studio で除いてみると、確かにファイルが作成されていた。
しかし、このツールは現在のバージョンでは Public モードのデータしか内容を参照できない。 
つまり、ファイルの存在は確認できたけれども、その内容をみることができないのである。 
 
 
 
もとの Azure SDK に付属の sample.zip の中にある CloudDrive がいいようだ。 
 
 
azure_samples/CloudDrive/scripts/MountDrive.ps1

function MountDrive {
Param (
$Account = “museum”,
$Key = “xxxQ0GjFYJqTvWY+SspHkfoDmOxxx”,
$ServiceUrl=”http://blob.core.windows.net”,
$DriveName=”Blob”,
$ProviderName=”BlobDrive”)

 # Power Shell Snapin setup
 add-pssnapin CloudDriveSnapin -ErrorAction SilentlyContinue

 # Create the credentials
 $password = ConvertTo-SecureString -AsPlainText -Force $Key
 $cred = New-Object -TypeName Management.Automation.PSCredential -ArgumentList $Account, $password

 # Mount storage service as a drive
 new-psdrive -psprovider $ProviderName -root $ServiceUrl -name $DriveName -cred $cred -scope global
}
MountDrive

 
上記の設定ファイルを作成しておいて 
  azure_samples/CloudDrive > powershell
    PS   azure_samples/CloudDrive > .\buildme.cmd
    PS azure_samples\CloudDrive> .\runme.cmd

Starting DevStore
****Starting PowerShell prompt ****
To switch to Blob drive: cd Blob:
To display the contents: dir

Name       Provider      Root                                      CurrentLocation
—-       ——–      —-                                                —————
Blob       BlobDrive     http://blob.core.windows.net 

 
  cd Blob 
   
  PS Blob:\000000004c00f3ca-staging\Web\Web_IN_0> dir

   Parent: CloudDriveSnapin\BlobDrive::http:\\blob.core.windows.net\000000004c00f3ca-staging\Web\Web_IN_0

Type       Size       LastWriteTimeUtc          Name
—-       —-       —————-          —-
Blob       619        2009/05/01 1:28:58        Events_UTC_200905010115_200905010130.xml
Blob       283        2009/05/01 1:31:15        Events_UTC_200905010130_200905010145.xml
Blob       283        2009/05/01 2:25:20        Events_UTC_200905010215_200905010230.xml
Blob       621        2009/05/01 3:38:22        Events_UTC_200905010330_200905010345.xml

  PS Blob:\000000004c00f3ca-staging\Web\Web_IN_0> cd ..
  PS Blob:\000000004c00f3ca-staging\Web> copy-cd Web_IN_0\ c:\work\ 
 
 
ようやく  取得した xml ファイルをみても、 Web Role が Start したなどの情報だけで、エラーの詳細の内容は記載されていない。
 
 結局は web.config に以下の記述を追加することで画面に詳細が表示されるようになり、 FastCGI の500 エラーなので権限関係の問題、そういば CakePHP は /app/tmp 以下のファイルシステムへの書き込みをしていることを思い出した。
 
 

<system.webServer> 
<httpErrors errorMode=”Detailed” /> 
</system.webServer> 

 

Read the rest of this entry »

»  Substance: WordPress   »  Style: Ahren Ahimsa