ウイング様から開業祝いをいただきました リンクを取得 Facebook × Pinterest メール 他のアプリ 12月 05, 2022 株式会社ウイング様より開業祝いをいただきました。https://www.weing.co.jp誠にありがとうございます。暖かい御心とセンスの良さに感動です。顧客も社員もパートナーも大事にする社風は本当に素敵ですね。今後ともどうぞ宜しくお願い致します。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
IVS文字・サロゲートペア文字の注意 11月 09, 2018 システムの中で文字数を取得する際には IVS文字・サロゲートペア文字 に注意が必要です。 IVD/IVSとは | 文字情報基盤整備事業 https://mojikiban.ipa.go.jp/1292.html サロゲートペア入門:CodeZine(コードジン) https://codezine.jp/article/detail/1592 例えば、エラーチェックで指定した「文字数」で固定する場合 最大「文字数」を超えているかチェックする場合 GeneXusでは&変数.Length()か、またはLen(&変数)で文字数を取得することが出来ます。 但し、上記のIVS文字・サロゲートペア文字の場合は、 見た目の1文字が1文字として算出されません。 試した環境:GeneXus15U10 通常文字 :辻 IVS文字:辻の点が1つの文字 このLengthを求めると、以下の結果となります。 通常文字 :1文字 IVS文字:3文字 --------- 通常文字 :叱 サロゲートペア文字:叱(環境依存) このLengthを求めると、以下の結果となります。 通常文字 :1文字 サロゲートペア文字:2文字 ※IVS文字とサロゲートペア文字を試したい場合は、Windowsの設定を変更する必要があります。 Microsoft IMEの場合 ・IMEのプロパティから[詳細設定] ・[変換]タブの[詳細設定] ・変換文字制限に 変換文字制限をしない IVSを含む文字を制限する サロゲートペアを含む文字を制限する といった候補が出ますので、[変換文字制限をしない]をチェックしてください。 これで変換候補にIVS文字とサロゲートペア文字が出てきます。 ※※※ 試した後は、戻しておいた方が良いです。 メールなどで送ってしまうと相手に迷惑ですので。 ちなみにBytecount()を使用してバイト数(文字コードはUTF-8)を取得すると 以下の結果となります。 通常文字 :辻 IVS文字:辻の点が1つの文字 ↓↓↓ 通常文字 :3バイト IVS文字:7バイト ---------... Read more »
参照整合制約(外部キー制約)とGeneXus 12月 03, 2018 GeneXusがデータベースを作成する際、 デフォルトだと 参照整合制約(外部キー制約)も生成します が、 あくまでもデフォルトであり、プロパティで変更することができます。 データストアのプロパティで[Declare referential integrity]がYesだと生成します。 Noだと生成しません。 ※但し、初回に設定しておくか、Noにした後に「DBの再編成」を行う必要があります。 Declare referential integrity property https://wiki.genexus.com/commwiki/servlet/wiki?9093,Declare+referential+integrity+property, 「参照整合制約」があるとどうなるか、ですが。 1)データ移行や、テストデータ作成時にDB構造を考慮する必要がある 親子関係の場合、子のデータを先に作ることができません。 親のデータを削除することができません。 トランとマスタの関係の場合も同じで、マスタが無いとエラーになります。 これは結構大変です。 GeneXusはアジャイル開発で進めることが多いですので、 テーブル構造が固まってないタイミングでもプロトタイプをガンガン作っていきます。 その際に、テストデータを用意するのに、 DB構造を踏まえてデータの投入や作成をするのは面倒ですし、 あまりDBに詳しくないメンバーがいた場合、 エラーの内容が理解できずに時間を浪費してしまうこともあるでしょう。 2)DB再編成時に失敗する これはGeneXus特有で、少々困った事象ですが、 DBを再編成する際にGeneXusはデータも移行しようとします。 機能自体は非常に有益です。 テストデータをなるべく残してくれるので助かります。 ただ、適当なテストデータが入っていて、「参照整合制約」がある状態だと DB再編成時に失敗して、生成し直しになってしまうことが割とあります。 3)テーブル同士の関連で不整合なデータが生成されない 親子関係、マスタとトランの関係をDBが管理しますので、 もし、システムの仕様が誤っていたとしても、DB側がエラーを出します。 ですので、確実にデータの整合性が管理されます。... Read more »
画面の初期表示や画面遷移で妙に時間がかかる、サーバー側のイベントの実行結果が怪しい場合 7月 06, 2020 重めの画面を表示するのに、想定以上に時間が掛かっていることはありませんか。 画面遷移する際に、想定以上に時間が掛かっていることはありませんか。 そして、サーバー側の処理をデバッグすると、Start/Refreshが2回以上実行されていることはありませんか。 そんな場合は、この問題が発生している可能性があります。 GeneXusの[Web User Experience]プロパティで、Smoothモードを使用している場合に WebPanelのサーバー側処理で5秒以上経過すると必要以上のオペレーションが発生してしまう https://sac.genexus.jp/viewtr_saclist.aspx?39076 ※こちらは初期画面表示や画面遷移(GETによるアクセス)の場合に発生するようでして、 1画面内のボタンイベント(POSTによる処理)の場合は発生しないようです。 記載の中の「規定の挙動」というのは何のメリットがあるのでしょうね?? リトライすることで何かメリットがあるなら納得も行くのですが、 普通のシステムであればとくにメリットが無いように感じるのですが、、、 まあ、5秒だと重めの画面で不意に発生してしまうことも有りそうですので、 config.gxに設定して、上限値を上げておいた方が良いですね。 config.gxの適用手順 ①対象のナレッジベース直下にconfig.gxという名前のファイルを作成します。 ②config.gxをテキストエディタで開いて、以下のテキストを編集して保存します 以下は10分(600秒)の設定 SPAHttpRequestTimeout = 600000 ※もし他の設定値がある場合は改行して編集してください。 SPAHttpRequestTimeout = 600000 EncryptDynCalls=SITE ③GeneXusで対象のナレッジベースを開きなおし、「すべてリビルド」を実行 Read more »
Tomcatの設定3:8080ポート以外で動作させる 6月 06, 2019 Tomcatで運用する場合で、いくつか考慮した方が良い設定・情報を記載します。 Tomcatのデフォルトではポート8080で動作します。 URLがhttp://localhost:8080/xxxxx/servlet/xxxxxという形になりますね。 こちらをポート80(http)で動作するようにすると、 URLからポートの記述を省略することができます。 http://localhost:8080/xxxxx/servlet/xxxxx ↓↓↓ http://localhost/xxxxx/servlet/xxxxx http://localhost:80/xxxxx/servlet/xxxxx と同じ 同じように、SSLを使ってhttpsにする場合はTomcatのデフォルトは8443ですが、 443(https)ポートで動作するようにすると、こちらも省略できます。 https://localhost:8443/xxxxx/servlet/xxxxx ↓↓↓ https://localhost/xxxxx/servlet/xxxxx https://localhost:443/xxxxx/servlet/xxxxx と同じ <設定方法> ※Apacheと連携する場合はApacheが80ポートで動作しますので、 以下の設定方法は、”Tomcatのみ”で動作させる場合の設定方法となります。 Tomcat\conf\server.xmlを修正します。 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ↓↓↓ <Connector port=" 80 " protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 以上です。 SSL(https)を設定済みの場合は8443と記載の個所を443に変... Read more »
ナレッジベースを名前を変えてコピーする方法 7月 08, 2019 ナレッジベースのコピーは、基本的な機能としては無く、少々面倒な手順が必要です。 新しいプロジェクトのために新規ナレッジベースを用意する際に、過去のナレッジベースから開発をスタートさせたい場合は良くあります。 それ以外でも、他者にナレッジベースを渡したい場合にも使えますので、覚えておいて頂くと何かと役に立ちます。 ちなみにGeneXusServerがあると簡単に実施できますが、今回は、GeneXusServerが無い場合の手順を掲載します。 ※以下の手順はGeneXus16U2ですが、GeneXus15 Ev1から同じ手順で行えます。 1.GeneXusを終了する GeneXusが起動していると行えない処理があるため、必ず終了しましょう。 2.SQLServerから元のKBをデタッチ 1)SQLServerのManagement Studioを起動して、 ナレッジベースが格納されているデータベースをデタッチします。 2)システムDBも併せてコピーする場合はそれもデタッチします。 ※システムDBがSQLServer以外の場合は、ダンプ/バックアップ 等 3.KBフォルダをコピー 1)KBフォルダをコピーします。 2)フォルダ名を新しいKB名に変更します。 4.KBフォルダ内の不要ファイルを削除、ファイル名を変更 1)以下のファイルを残して、削除します。 ・GX_KB_TestKB_WWP_16U2.mdf (ナレッジベース格納DB) ・GX_KB_TestKB_WWP_16U2_log.ldf (ナレッジベース格納DBのログ) ・knowledgebase.connection (ナレッジベース格納DBがどこにあるかを示すファイル) ・TestKB_WWP_16U2.gxw (GeneXus起動用のショートカット) ・TestKB_WWP_16U2_DB.mdf (システムDB) ・TestKB_WWP_16U2_DB_log.ldf (システムDBのログ) 2)ファイル名を新しいKB名に合わせて変更します。 TestKB_WWP_16U2 → TestKB_WWP_16U2_COPY ・GX_KB_TestKB_WWP_16U... Read more »
Tomcatの設定5:メモリ調整と起動モード 6月 17, 2019 Tomcatで運用する場合で、いくつか考慮した方が良い設定・情報を記載します。 Tomcatのデフォルトでは初期メモリが128MB、最大が256MBとなっています。 市販のパソコンでもメモリは4GBや8GBは有りますので、初期値は非常に小さいです。 Linuxの場合は、Tomcatの起動オプションで、設定してください。 WindowsのTomcatの場合は設定コンソールから設定します。 サーバーのスペックや構成に合わせて必ず調整した方が良いものは以下の内容になります。 1.メモリ(ヒープ領域) -Xms :Initial memory pool -Xmx :Maximum memory pool Tomcat起動時に初期メモリが確保され、不足したら拡張を繰り返す形となります。(最大値まで) 個人的にはどうせ拡張するのであれば、初期メモリの時点である程度確保しておいた方が良いと考えてます。 その方が拡張の際の処理動作コストも軽減されますので。 どの位の設定が良いのかは一概には言えず、 私の経験則からの例ですが、総メモリが8GBで、TomcatとPostgreSQLが同居したサーバーの場合であれば、初期2GB、最大3GB位の設定にしますね。 2.起動モード Tomcatには起動モードが2種類あり、「クライアントモード」と「サーバモード」があります。 <クライアントモード> 起動時間を短縮し、メモリサイズを縮小するように調整されている。 起動時に「-client」オプションを付けて実行する。 <サーバーモード> プログラム実行速度が最大になるように設計されている。 起動時に「-server」オプションを付けて実行する。 運用時にはサーバーモードで動作させるようにしましょう。 3.メモリ(Permanent領域) -XX:PermSize ・・・ Permanent 領域の初期値 こちらは運用中の影響ではなく、Tomcatが起動できるかどうかという設定です。 プログラムが大量にある場合、Tomcat起動時にロードしきれずにエラーになったり、 起動が遅かったりしますので、その際には拡張した方が良いです。 サーバーモードの初期値は64MBです。 システムの規模がそこそ... Read more »
コメント
コメントを投稿