Hi,

I have the requirement to dump large result sets into files. I am currently using %SQL.Statement and the result set created by it.

The DisplayFormatted is used to write a CSV. The query I used to test does not contain any filters, it is just a select * from a table with 16 million rows.
The file created is 2GB in size. The issue I have is that it takes 8 hours to create this file.

0 3
0 257

Hello,

I need to create a dialogbox on my zenpage to confirm a Delete operation.

I tried using below code on in a my client side method but its creating a blank dialog box.

zenLaunchPopupWindow('%ZEN.Dialog.confirmationDialog.cls','confirmationDialog','resizable,width=380,height=180');

Is there a way i can create a Dialog box with text "Do you want to delete" and two buttons "Yes" and "No" and store the response in the calling client/server method.

Thanks,

Jimmy Christian.

0 2
0 155
Announcement
· Jun 10, 2021
Serenji v3.1.4 update

We’ve published an update to the Serenji debug extension for Visual Studio Code, making it ready for the Workplace Trust feature in VS Code 1.57.

This allows the Serenji ObjectScript editor to work without restrictions across all workspaces and, by bringing it in line with the VS Code update, only allows the debugging feature to be used in trusted workspaces.

3 0
1 131

Some key points are emphasized in this article in order to save your time to get linux ldap client in cache working with windows AD (active directory) LDAP server.
The first thing to do is to get successful TLS connection to windows AD.
Raw tcp case is beyond of this article, there is no problem with it, it is trivial.
Windows ldap server uses port 636 for tls and this port can be used to get ldap certificate.
As we will see later there is reason for this.
linux ldap client uses STARTTLS special ldap extension to switch plain tcp to TLS only.

9 2
1 2.6K

When using Studio, ODBC or a terminal connection to Caché or Ensemble, you may have wondered how to secure the connection. One option is to add TLS (aka SSL) to your connection. The Caché client applications - TELNET, ODBC and Studio - all understand how to add TLS to the connection. They just need to be configured to do it.

Configuring these clients is easier in 2015.1 and later. I'm going to be discussing this new method. If you're already using the old, legacy method, it will continue to work, but I would recommend you consider switching to the new one.

25 7
3 6K

HA backup strategy

we use Rose to do HA with cache2016.2, the database is placed on the hard disk array, which is essentially an instance, and the same array disk is mounted by rose switch, another mirror machine is made.

Is there any problem with this structure for disaster recovery and backup, I hope to give some advice. Thanks!

0 8
0 342

We need to know how to pass a certain value, which in the .NET world is described as a byte array (i.e. byte[])

Background:

We have various libraries that were created in .NET 4.5 that are registered for COM interom, an example that we have is as follows:

.NET Signature:

public static byte[] CreateQrCode(string content, int width, int height, string imageFormat)

.NET utilisation:

byte[] image = Writer.CreateQrCode("http://redacted/", 100, 100, "png");

0 4
0 381

I am trying to populate a table using the sql Data Import Wizard. The input file is a tab delimited text file. But the import keeps failing with a 104 error showing validation for the columns which use %Library.TimeStamp and %Boolean datatypes is failing. Yet when I insert values into the table through a SQL insert command, the values get saved correctly in the table.

For the TimeStamp format in the wizard form, I am choosing YYYY-MM-DD-HH:MI:SS because there was no option for this format: YYYY-MM-DD HH:MM:SS.

0 4
0 358
Question
· May 27, 2021
JDBC counts don't match

I'm using a JDBC driver to connect PGSQL -> Cache. I'm noticing when I run SELECT queries and COUNT(*) command against the same table, I get different result sets. I'm pretty new to Cache in general - so I'm trying to understand why these would be different.

Examples (TransID and InvNum should occur in every "row"):

SELECT COUNT(*) FROM ACCT.Services = 1,090,324 WHERE ACCT.Dept = 483

SELECT TransID FROM ACCT.Services = 1,085,776 WHERE ACCT.Dept = 483

SELECT InvNum FROM ACCT.Services = 586,023 WHERE ACCT.Dept = 483

0 8
0 249
Question
· May 16, 2021
IRIS or Cache?

Hello all,

I am in a bit of a situation where I could get your help please.

I want to get certified with IRIS, but I also do see that there is an availability named Cache.

Are they both the same or different? if different please explain it to me as how?

Also what is the difference between IRIS, IRIS for Health, Deep Sea? Please explain to me.

Also what do you think I should get my self certified with?

Please leave your comments below.

Cheers.

0 3
0 420

We've traditionally run a selection of development environments from a single cache instance using different namespaces for DEV TEST PREP etc. This has come with a few drawbacks, mainly that you then cant break down into namespaces per environment and everything is sharing various options.

Is there a massive overhead to running multiple cache instances from the same 'box' instead?

How best to share the memory setup in that situation, we usually pre-define around 80% for the instance, do we just share that evenly between the multi instance scenario?

0 8
0 278
Question
· May 27, 2021
ERROR#5002

User antiterrorism is assigned the following SQL procedure privileges:

ERROR #5002: Cache error: <UNDEFINED>SQLUserPrivsExecute+57^%SYS.SQLSEC ^oddPROC("ENSEMBLE_ENS","BAIYAOJIREQUEST_EXTENT",27)

SOURCE ELEMENT: %CSP.UI.Component.SQLTables (SQLProcs)

0 1
0 473

Afternoon all,

Is there a way (at SQL level) to script out the definition of a Cache stored procedure from within SQL?

In SQL Server, I would do...

Select * from INFORMATION_SCHEMA.ROUTINES where ROUTINE_NAME = 'my_sproc_name'

But cant find anyway to do this in cache.

Note, its an old version of Cache, so "INFORMATION_SCHEMA" is not available.

I am trying to see the SQL definition in the sproc from SQL itself.

Thanks all

0 4
0 212
Article
· Jul 8, 2020 7m read
Tips for debugging with %Status

Introduction

If you're solving complex problems in ObjectScript, you probably have a lot of code that works with %Status values. If you have interacted with persistent classes from an object perspective (%Save, %OpenId, etc.), you have almost certainly seen them. A %Status provides a wrapper around a localizable error message in InterSystems' platforms. An OK status ($$$OK) is just equal to 1, whereas a bad status ($$$ERROR(errorcode,arguments...)) is represented as a 0 followed by a space followed by a $ListBuild list with structured information about the error. $System.Status (see class reference) provides several handy APIs for working with %Status values; the class reference is helpful and I won't bother duplicating it here. There have been a few other useful articles/questions on the topic as well (see links at the end). My focus in this article will be on a few debugging tricks techniques rather than coding best practices (again, if you're looking for those, see links at the end).

15 7
11 2.2K

I have some code in a mac routine that use indentation and the "." character :

 IF condition1 DO
     .WRITE YCR,...
     .WRITE YCR,...
     .WRITE YCR,...

I would like to add a try / catch block between the write statements.
I can't refactor the whole code and use indentation with curly braces instead (there is too much code, not written by me)

I have tried the following but it does not work (it compiles, but code stop running right before the try keyword)

0 2
0 326

I have run into two annoyances when using VS Code for server-side editing of Objectscript and was wondering if anyone knows of any solutions or workarounds.

1. In .mac routine files, class names that aren't fully qualified (e.g. ##class(example) instead of ##class(Package.example)) fail to be understood, so the class will have a red squiggly underneath it and a problem that reads

"Class 'example' does not exist. InterSystems Language Server".

0 2
0 246

Hi Team,

I have a requirement to delete the Ensemble interfaces , as per User request. I would like to write a routine for that and once I execute, it should remove the interface components through code.
Could you please provide code samples for the following actions ?

  • Deleting an individual rule from a rule class
  • Deleting a class from Ensemble
  • Deleting a Host (Service/Operation/Process) from the Production.

Appreciate the help.

Thanks,

Purushothaman.T

1 6
0 406

At the heart of IRIS and Cache is a very interesting database architecture that we, at M/Gateway Developments, refer to as "Global Storage". If you ever wanted to know more about the fundamentals and capabilities of this underlying database, you might want to read a major analysis we've put together:

https://github.com/robtweed/global_storage

Amongst other things you'll discover that:

8 4
2 586