Encontrar

Artículo
· 12 hr atrás Lectura de 1 min

Commandes terminal pour la gestion de la production

Commandes pour la gestion des productions :

Démarrer, arrêter, mettre à jour, restaurer et nettoyer une production

Do ##class(Ens.Director).StartProduction("ProductionName")
Do ##class(Ens.Director).StopProduction()
Do ##class(Ens.Director).UpdateProduction()
Do ##class(Ens.Director).RecoverProduction()
Do ##class(Ens.Director).CleanProduction()

Interrompre les messages en attente :

d ##class(Ens.Queue).AbortQueue("Component Name")

Obtenir le nom de l’instance :

W !,##class(%SYS.System).GetUniqueInstanceName()

Obtenir le nom du nœud :

W !,##class(%SYS.System).GetNodeName()

Terminer un Job (JobId) :

d $SYSTEM.Process.Terminate(jobid)

Activer un espace de nom (Namespace) :

 do ##class(%EnsembleMgr).EnableNamespace($namespace)

Activer un élément de configuration (ConfigItem) :

Do ##class(Ens.Director).EnableConfigItem("ConfigNameHere", 0, 1)

Obtenir un GUID :

write $System.Util.CreateGUID()

Obtenir les informations du CPU :

d $system.CPU.Dump()

Obtenir le nombre de CPU :

Retourne le nombre de CPU virtuels (également appelés CPU logiques ou threads) disponibles sur le système.

W $SYSTEM.Util.NumberOfCPUs()

Vérifier l’espace disque disponible :

Affiche l’espace libre des bases de données pour tous les namespaces.

do ALL^%FREECNT

 

Merci,
 

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 13 hr atrás Lectura de 1 min

Exécuter des requêtes SQL depuis un terminal

Il est possible d’exécuter des requêtes SQL directement depuis le terminal à l’aide de la méthode $system.SQL.Shell().

Voici un exemple d'exécution.

SAMPLES>do $System.SQL.Shell()
SQL Command Line Shell
---------------------------------------------------- The command prefix is currently set to: <>.
Enter q to quit, ? for help.
SAMPLES>>select * from Sample.Vendor
1. select * from Sample.Vendor Vendor Balance Contact DaysClear DiscDays DiscRate LastInvDate LastPayDate MinPayment Name NetDays PayFlag TaxReportingAddress_City Address_State Address_Street Address_Zip
: *Si vous appuyez sur entrée sans saisir de commande sur la première ligne, le terminal bascule en mode "multi-ligne".
USER>d $SYSTEM.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
Enter q to quit, ? for help.
USER>> << entering multiline statement mode, 'GO' to execute >>
1>>set transaction isolation level read committed
2>>go

Pour plus de détails, vous pouvez vous référer aux articles ci-dessous.

How to use SQLShell [IRIS]
How to use SQLShell

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 13 hr atrás Lectura de 3 min

Zoliks Air Duct Cleaning Services Gardiner – Clean Air for a Healthier Space

Clean indoor air is essential for comfort, health, and energy efficiency. In Gardiner, homes and businesses depend on HVAC systems throughout the year, making air duct maintenance an important responsibility. Zoliks Air Duct Cleaning Services Gardiner offers reliable and thorough air duct cleaning to help remove dust, allergens, and pollutants from your ventilation system.


Importance of Air Duct Cleaning

Air ducts act as the lungs of your home or workplace. Over time, they collect dust, pet dander, pollen, mold spores, and other airborne particles. When these contaminants build up, they are circulated through the air every time your heating or cooling system runs.

Dirty air ducts can negatively affect indoor air quality and may trigger allergies, asthma symptoms, or respiratory discomfort. Regular air duct cleaning helps reduce these risks and creates a cleaner, fresher indoor environment.


Professional Air Duct Cleaning in Gardiner

Zoliks Air Duct Cleaning Services Gardiner uses professional tools and proven methods to clean your entire duct system. This includes supply ducts, return ducts, vents, and registers. The goal is to remove deeply embedded debris, not just surface dust.

Each cleaning service is performed with care to ensure your HVAC system remains protected while achieving effective results. The process improves airflow and helps your system operate more efficiently.


Benefits of Choosing Zoliks Air Duct Cleaning Services Gardiner

One of the main benefits of clean air ducts is improved indoor air quality. With fewer pollutants circulating, residents and employees can breathe easier and enjoy a more comfortable environment.

Clean ducts also support better HVAC performance. When airflow is unrestricted, heating and cooling systems work more efficiently, which may help reduce energy usage and utility costs.

Another important benefit is system longevity. Removing dust and debris reduces strain on HVAC components, helping prevent premature wear and expensive repairs.


Signs Your Air Ducts Need Cleaning

Many property owners are unsure when duct cleaning is needed. Common signs include visible dust around vents, unpleasant odors when the system is running, uneven airflow, or increased allergy symptoms indoors.

Air duct cleaning is especially recommended after home renovations, moving into a new property, or if pets are present, as hair and dander can quickly accumulate in the ductwork.


Residential and Commercial Services

Zoliks Air Duct Cleaning Services Gardiner serves both residential and commercial properties. Homeowners benefit from cleaner air and improved comfort, while businesses enjoy a healthier environment for employees and customers.

Services are tailored to meet the specific needs of each space, whether it is a house, apartment, office, or commercial building.


Reliable Air Duct Cleaning in Gardiner

Maintaining clean air ducts is a key part of responsible property care. Zoliks Air Duct Cleaning Services Gardiner is committed to delivering dependable service, attention to detail, and long-lasting results.

By choosing professional air duct cleaning, you help create a healthier indoor environment, improve system efficiency, and enjoy cleaner air throughout your space.

Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 25 dic, 2025 Lectura de 2 min

サマータイムの対応について

これは InterSystems FAQ サイトの記事です。

InterSystems 製品の内部日付時刻($HOROLOG)を利用して時刻を取得している場合、オペレーティング・システムが提供するアルゴリズムに基づいて季節的な時刻調整を行います。

そのため、オペレーティングシステムにてサマータイムの調整が行われる場合は、InterSystems 製品は、オペレーティングシステムで対応したサマータイム時刻で動作します。

注意点としては、$HOROLOG 値が大きく変更されるケースもあるため、時刻比較やこの値をキーにしたアプリケーションの処理などがもしある場合は、その変更を考慮していただく必要があります。

ご参考:「ローカル時刻調整のしきい値

なお、$NOW() 関数を使用して内部日付時刻を取得している場合は、オペレーティングシステムのサマータイムの調整に対応していませんのでご注意ください。

$NOW() 関数は、$ZTIMEZONEの値を使用してローカル時刻を決定しています。
$ZTIMEZONEは1年を通して連続的で、サマータイム(DST)などのローカル時刻の調整に対応していないためです。

また、小数点以下を含むタイムスタンプ値をサマータイム対応済のローカル時刻で取得したい場合、$HOROLOG では対応できませんので、以下の2つ方法のどちらかを利用して取得します。

1)$ZTIMESTAMPの値を利用して、ロカール時刻に変換する方法を利用する方法

$ZDATETIMEH()の第2引数に -3 を指定することで UCT 時刻からローカル時刻に変更されます。また、$ZDATETIME()の第4引数を利用して、時刻値の小数点の有効桁数を指定できます。

write $ZDATETIME($ZDATETIMEH($ZTIMESTAMP,-3),3,,6)

 

2)%Library.UTCクラスのNowLoca()メソッドを使用する方法(注意:小数第3位までの固定出力です)

write ##class(%UTC).NowLocal()
Comentarios (0)1
Inicie sesión o regístrese para continuar
Artículo
· 25 dic, 2025 Lectura de 4 min

如何按时间间隔或计划运行进程?

当我开始使用 InterSystems IRIS,尤其是在互操作性方面时,我最初遇到的一个常见问题是:如何在间隔时间或计划内运行某项功能?在本专题中,我想分享两个简单的类来解决这个问题。我很惊讶在 EnsLib 的某个地方没有找到类似的类。也许是我搜索得不好?总之,这个主题并不意味着是复杂的工作,只是为初学者提供了几个片段。

假设我们有一项任务是"从 API 获取数据并将其放入外部数据库"。要完成这项任务,我们需要

  1. Ens.BusinessProcess,其中包含我们数据流的算法:如何准备获取数据的请求,如何将 API 响应转换为数据库请求,如何通过数据流生命周期处理错误和其他事件
  2. EnsLib.REST.Operation 用于使用 EnsLib.HTTP.OutboundAdapter 向 API 提出 HTTP 请求
  3. Ens.BusinessOperationEnsLib.SQL.OutboundAdapter,用于通过 JDBC 连接将数据输入外部数据库

关于这些业务主机的实现细节不在本文讨论范围之内,我们假设已经有了一个进程和两个操作。但如何运行这一切呢?进程只能通过入站请求运行......我们需要一个启动器(Initiator)!我们需要一个启动器!这个启动器将通过间隔运行,并向我们的进程发送一个虚假请求。

下面就是这样一个启动器类。我添加了一些额外的功能:使用同步或异步调用,如果有许多主机作为目标,可以在出错时停止或不停止进程。但这里主要是一个目标列表。我们将向列表中的每个项目(业务主机)发送请求。请注意 OnGetConnections 事件——它是在生产用户界面中正确建立链接所必需的。

/// Call targets by interval
Class Util.Service.IntervalCall Extends Ens.BusinessService
{

/// List of targets to call
Property TargetConfigNames As Ens.DataType.ConfigName;
/// If true, calls are made asynchronously (SendRequestAsync)
Property AsyncCall As %Boolean;
/// If true, and the target list contains more than one target, the process will stop after the first error
Property BreakOnError As %Boolean [ InitialExpression = 1 ];
Property Adapter As Ens.InboundAdapter;
Parameter ADAPTER = "Ens.InboundAdapter";
Parameter SETTINGS = "TargetConfigNames:Basic:selector?multiSelect=1&context={Ens.ContextSearch/ProductionItems?targets=1&productionName=@productionId},AsyncCall,BreakOnError";
Method OnProcessInput(pInput As %RegisteredObject, Output pOutput As %RegisteredObject, ByRef pHint As %String) As %Status
{
    Set tSC = $$$OK
    Set targets = $LISTFROMSTRING(..TargetConfigNames)

    Quit:$LISTLENGTH(targets)=0 $$$ERROR($$$GeneralError, "TargetConfigNames are not defined")

    For i=1:1:$LISTLENGTH(targets) {
        Set target = $LISTGET(targets, i)
        Set pRequest = ##class(Ens.Request).%New()

        If ..AsyncCall {
            Set tSC = ..SendRequestAsync(target, pRequest)
        } Else  {
            Set tSC = ..SendRequestSync(target, pRequest, .pResponse)
        }
        Quit:($$$ISERR(tSC)&&..BreakOnError)
    }

    Quit tSC
}

ClassMethod OnGetConnections(Output pArray As %String, pItem As Ens.Config.Item)
{
    If pItem.GetModifiedSetting("TargetConfigNames", .tValue) {
        Set targets = $LISTFROMSTRING(tValue)
        For i=1:1:$LISTLENGTH(targets) Set pArray($LISTGET(targets, i)) = ""
    }
}

}

之后,您只需将该类添加到生产中,并在 TargetConfigNames 设置中标记我们的业务流程。

但如果需求发生了变化怎么办?现在我们需要每周一上午 08:00 运行数据抓取器。最好的办法是使用任务管理器(Task Manager)。为此,我们需要创建一个自定义任务,以编程方式运行启动器。下面是该任务的简单代码:

/// Launch selected business service on schedule
Class Util.Task.ScheduleCall Extends %SYS.Task.Definition
{

Parameter TaskName = "Launch On Schedule";
/// Business Service to launch
Property ServiceName As Ens.DataType.ConfigName;
Method OnTask() As %Status
{
    #dim tService As Ens.BusinessService
    Set tSC = ##class(Ens.Director).CreateBusinessService(..ServiceName, .tService)
    Quit:$$$ISERR(tSC) tSC
    
    Set pRequest = ##class(Ens.Request).%New()
    Quit tService.ProcessInput(pRequest, .pResponse)
}

}

这里有两件重要的事情:

  • 您必须将 Initiator 业务服务的 Pool Size 设置为 0,以防止通过调用间隔运行它(选项 Call Interval,您可以清除或保持原样——当 Pool Size 为 0 时,它不会被使用)。

  • 您需要在 Task Manager 中创建一个任务,选择"Launch On Schedule" 作为任务类型(不要忘记选中命名空间),将我们的启动程序业务服务名称设置为 ServiceName 参数,并设置所需的日程。请参阅:System Operation > Task Manager > New Task

奖励

我经常遇到这样的情况:我们需要在生产中按需运行某些功能。当然,我们可以为此在 CSP 上创建一些自定义用户界面,但重新发明轮子不是我们的办法。我认为最好使用管理门户(Management Portal)的典型用户界面。因此,我们之前创建的任务也可以手动运行。只需将任务运行类型更改为 On Demand。按需任务列表可在 System > Task Manager > On-demand Tasks,请参见 Run 按钮。此外, Run 按钮(手动运行)可用于任何类型的任务。

就是这样。现在,我们的业务主机有了一个漂亮的互操作性架构。还有 3 种运行数据采集器的方式:按时间间隔、按时间表或手动。

Comentarios (0)1
Inicie sesión o regístrese para continuar