訪問:12569人(187,375PV)
今月:229人(800PV)
前月:257人(1,977PV)
from 2016
2019年2月
         
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
   
休み 営業 半日
AM
PM
今日 今日
休み
不明
イベント


17件 4ページ

4Dブログ

4DWebとFullCalendar


先日お客様のスケジュール管理をWeb化しました。
4DWebは1ライセンスで無制限のユーザーが利用できるので、マルチユーザーにはとても有利です。
さてその時利用したのが「FullCalendar」というJQueryのプラグイン(ツール)です。
非常に簡単にカレンダー表示ができるツールです。
ただしスケジュールデータを動的にデータベースとやりとりするには一苦労が必要です。
FullCalendarに渡すデータの型はJSON形式かXMLデータです。
4Dには元々XMLを扱うコマンドが実装されていて自分としては扱いやすかったのでXMLデータを渡す形にしました。
逆にここさえ押さえれば4DWeb+FullCalendarはとてもいい感じでした。
早速私の運営するサイトにも横展したいと思います!



メンテナンス


システムのメンテナンスについてお話しします。
お客様のシステムは保守サポートという形でメンテナンスを行なっています。
運用中に起こった問題や、ちょっとした改善なんかも保守の対象になることがあります。
お客様に気持ちよく使っていただくためには、作ったら終わり、ではなく常に改善・改良を行っています。
そうしてお客様のシステムには10年20年は当たり前に稼働しているものがいくつもあります。

さて日常の道具で20年メンテナンスしてくれるものってどうでしょうか?
おおよそ10年くらいでメンテナンスが難しくなってくるのではないでしょうか?
私の愛車は20年乗っています。先日車検を受けてタイヤも変えてまだまだ現役です。
ただちょっとエアコンの効きが悪いなーと思っていました。
そこで車検を受けた後に相談に行ったのですが、原因がつかめず、古くなったからということに。
納得できずに今度は有名カーショップに持って行って洗浄して欲しいと頼みました。
30分くらい待って言われたのは調べたけどできません?その理由もよくわからない?
結局メンテナンスしてもらえませんでした。
しょうがないので、ネットで調べて見ました。やりたいのはエバポレーターの清掃。
だいたいの場所はわかったので分解して見ました。
するとなんと我が家特有の問題が!竹の葉がぎっしりと隙間に詰まっていました。
この初期型のモデル、エアコンにフィルターが無いんです?
これではおそらく空気の流れが悪いのでエバポレーターが過冷却になりコンプレッサーは止まってしまっていたでしょう。
暑いのに冷たいので止まり車内は冷えないという状況に違いありません。
葉っぱをすべて取り除き、エバポレーターはセスキで清掃しました(家の室内のエアコンもそうしてます)。
するとどうでしょうエアコンは元気を取り戻し車内は快適に冷えるようになりました。

システムのメンテナンスに期限はありません。
運用に合わなくなってきたり、より良い改善案がひらめいたりしたらいつでもメンテナンスいたします。

Before


After



デバッグとOn Headerイベント


先日バージョンアップしたお客様で、画面がフリーズするという現象が起きた。
それを見て自分のハートも凍りついたかどうかはさておき、早速色々と試しながら原因を探った。
しか〜し一向に原因が掴めない。それで4D社のサポートに連絡した。サポートは世の中良くある繋がらないサポートではない。
すぐに原因についてあれこれとアドバイスいただいた。でも決め手がなかったので、デバッグログを取ることになりました。
問題のコードの直前でデバッグを開始して適当なところで終了します。ついでにログフォルダーを開いて問題のログをサポートに送りました。
するとOn Headerでとんでもないことが起きていました。
というかこのイベントの発生タイミングが自分が考えるにどうも不自然だ!
画面上すこ〜しでもどこか書き変わると必ず発生するらしい。
もはやOn Headerの使い道すらわからない?
で、大量のアクセスが起きてしまいには無限ループ的動きになってフリーズする。
とりあえず原因がわかったのでプログラムを修正してフリーズは発生しなくなりました。
ちなみに、ヘッダーエリアに表示中のデータ件数を表示するためオブジェクトメソッドで
self->:=records in selection(current form table->)
なんて書いてたわけですが、これが大量に実行されていたわけです。
今回v12からv16へのバージョンアップだったのですが、本当ならv12でも問題だったはず???
若干解せない部分はありますが、ともかく無事に問題解決できてよかったです。
4Dサポートに感謝。


昨日バージョンアップしました。



昨日お客様のシステムをバージョンv12からv16バージョンアップしました。

データサイズが23GBあったので変換時間がどのくらいかかるか心配でしたが、新しいサーバー環境は早かったです。

お客様には是非にと勧めてストレージはSSDにしていただきました。

ストレージ内で大きなファイルをコピーすると500MB/Sというスピードであっという間にコピーできます。

それでデータの変換時間ですが、今回時間のかかるのはインデックスの再構築とプライマリキーの生成です。

インデックスは100万件オーダーのテーブルに相当の数のフィールドに設定してますが、1時間はかかりません。

プライマリキーデータの生成はインデックスより少し時間がかかりましたが1時間強です。

バックアップ時間は30分弱だったのが、10分弱に短縮されました。

クライアントからの使用感は連休明けのお楽しみになりますが、バックアップ・リカバリーの時間が短縮できることはシステムメンテナンスの面から非常にメリットが大きいと思います。

プログラム的には常時メンテナンスしていることもあって大きな修正はありませんでした。

ホッとして連休を迎えています(仕事はしてるけど、)。



バージョンアップとシンタックスエラー0



皆さん4Dシステムのバージョンアップはお済みですか?
最近は遠方からのバージョンアップのご依頼が増えています。
残念なことにもともと開発された方がバージョンアップを引き受けられない事情があるようです。
私どもではそのようなシステムのバージョンアップもありがたく引き受けさせていただいております。
そんなバージョンアップではバージョンアップと同時に次のような作業も行います。
1)深刻なバグの修正。
2)極力プラグインへの依存をやめる。または4D社提供のものに移行する。
3)シンタックスエラーを0にする。

せっかくお金をかけてバージョンアップするのだから今まで通りではなくちょっと前より良くなったね!と言っていただきたい。
サードパーティーのプラグインに依存しているとバージョンアップの度に神経を使うことになります。
またプログラムが複雑であったりするケースがあるので、なるべくシステムをシンプルにしたいと思います。
最終的に安定した動作を目指すわけですから、シンタックスエラーはやっぱりゼロにします。
もっとも多いエラーは変数のタイプエラーのように感じます。
一つの変数を複数のタイプで使いまわしてしまっていることがあります。
私も最近まで間違っていたのですが、配列タイプのリストBOXとセレクションタイプのリストBOXはタイプが違うのですね。

さて稼働させてからも埋もれていたバグが発生することもあります。
私どもでは納品後システムを稼働してから6ヶ月間は無償で保守サポートいたします。
その後は年間保守またはスポット保守にて継続してシステムのサポートさせていただきます。


17件 4ページ