検索

記事
· 2024年8月14日 2m read

第十章 指定 SAX 解析器的标志

第十章 指定 SAX 解析器的标志

指定 SAX 解析器的标志

Web 客户端调用 Web 服务时,它会在内部使用 SAX 解析器,这是 IRIS 附带的第三方产品。可以设置 Web 客户端的 SAXFlags 属性,以设置解析器要使用的标志。

要使用 WS-Security 登录功能:

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
InterSystems公式
· 2024年8月14日

InterSystems IRIS & IRIS for Health 2024.3 開発者プレビュー

InterSystems IRIS 2024.3 と InterSystems IRIS for Health 2024.3 の最初の開発者プレビューが WRC プレビューダウンロードページ に公開されました。コンテナ版は InterSystems コンテナレジストリ から入手いただけます。コンテナは latest-preview とタグ付けされています。

今回はリリースサイクルの中で非常にはやいビルドであり、「本リリースの注目点」と呼べる機能はまだありません。今後のプレビューリリースで順次、新機能が追加されていく予定です。

ドキュメントは以下のリンクからご覧いただけます。

キットについて

本リリースでは、すべてのサポート対象プラットフォーム向けに、従来のインストーラ形式を提供します。サポート対象プラットフォーム一覧は こちらのドキュメント をご覧ください。

インストーラとプレビュー用ライセンスキーは、WRC プレビューダウンロードページ もしくは 評価サービスページ ("Show Preview Software" フラグをチェックしてください) から入手いただけます。

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください
InterSystems公式
· 2024年8月14日

InterSystems IRIS & IRIS for Health 2024.3 developer preview is now available

The first developer preview of InterSystems IRIS 2024.3 and InterSystems IRIS for Health 2024.3 has been posted to the WRC developer preview site.  Containers can be found on our container registry and are tagged latest-preview.

This is a very early build in the release cycle and there aren’t any “highlight” worthy features that are complete.  They’ll start to arrive in future preview releases.

Initial documentation can be found at these links below.

Availability and Package Information

This release comes with classic installation packages for all supported platforms.  For a complete list, refer to the Supported Platforms document.

Installation packages and preview keys are available from the WRC's preview download site or through the evaluation services website (tick the "Show Preview Software" box).

ディスカッション (0)2
続けるにはログインするか新規登録を行ってください
質問
· 2024年8月14日

Iterating ^$GLOBAL is very slow

I use the following code to loop trough all globals : 

set name=""
for
{
   set name=$order(^$GLOBAL(name))
   quit:name=""
   write name,!
}

However this is really slow : about 1second per node. 

I ran debugger, and it seems most of the time is spend in "%SYS.GD Visible" function. There is a comment that says : 
"Sees if globals in dataset are visible to our namespace"
This function loop on a global named  ^mtemp which contains lot of records (10K or more).
I have cleared global, hoping it has been filled by another process but it's not (it seems to be filled by %SYS.GD)

Why is it so slow, Is there a way to make this faster ?

5 Comments
ディスカッション (5)3
続けるにはログインするか新規登録を行ってください
質問
· 2024年8月14日

ObjectScript ClassMethod when called from Python method always returns empty string

If anyone has experience debugging Embedded Python or has insight into why an ObjectScript method when called from a Python method would not work but would work when called directly via ObjectScript or in a Python shell, your help would be appreciated! 

We have an ObjectScript ClassMethod called GetTemplateString() which takes in a templateName of String type and uses the template name to get the template object, access the Code, and read the code into a templateString. The string version of the Code is returned.

ClassMethod GetTemplateString(templateName As %String) As %String
{
    set template = ##class(%Library.RoutineMgr).%OpenId(templateName)
    set templateString = template.Code.Read()
    return templateString
}

This method works as expected when called directly from ObjectScript in an IRIS terminal and also works when called directly from an IRIS terminal in the Python shell. In both cases the expected string value of the template Code contents is returned.

However, we need to call the GetTemplateString method from inside a Language = python type ClassMethod. When we call the method from within the Python class using iris.cls() an empty string is the returned value for templateString. 

ClassMethod MergeInternal(templateName As %String, templateString As %String) As %Stream.Object [ Language = python ]
{
    import iris
    class IRISLoader:
        def load_text(self, name):
            # for some reason, when called from a Python method the below method always returns an empty string.
            templateString = iris.cls('pkg.isc.airspeed.API').GetTemplateString(name)
            return templateString
        def load_template(self, name):
            template = Template(self.load_text(name), filename=name)
            return template
...
}

In debugging, we have confirmed using CodeGetSwizzled(1) that the Code has been swizzled, but Code when Read() always returns an empty string when called in this way. We are unsure why this is happening when the method is called from within the python ClassMethod.

Does anyone have ideas or insight that could assist us in our debugging efforts? Thank you!

2 Comments
ディスカッション (2)1
続けるにはログインするか新規登録を行ってください