For volatile tables (tables with many INSERTs and DELETEs), storage for bitmap indexes can become inefficient over time.
For example, suppose that there are thousands of data with the following definition, and the operation of bulk deletion with TRUNCATE TABLE after being retained for a certain period of time is repeatedly performed.
Countermeasures against SQL injection have been published on various websites, but we believe that it is possible to prevent SQL injection in applications using InterSystems SQL as well as other RDBMS by implementing these countermeasures appropriately. In addition, InterSystems Data Platform (hereinafter referred to as IRIS) incorporates several measures that make SQL injection more difficult than general RDBMS.
Sorry, somewhat of novice here, but how is a mac or a routine created into a binary or is there a way to hide your routines so that no other user can edit them? Like remove source code and have an executable?
This is for the veteran programmers out there (you know who you are; you started programming before date 60000).
I'm in the middle of updates for our system, and I've come across many $ZU() calls. Most of them are documented in the "Replacement List", but two are missing: $ZUtil(0) and $ZUtil(1).
I honestly don't remember what these are for (and I'm pretty sure I used them in code in a previous century), so if someone can tell me, great. If you can provide a link to a reference, better!
We've implemented SAML authentication for our application where we are the service provider and various other entities are the identity providers. We've done successful connections with several identity providers including Okta, Duo Mobile, Ping Identity, and Azure. Validating the SAML response with signed assertions has been working great. Now, I am trying implement support for the SAML assertions in the response being encrypted for a new identity provider and struggling to understand procedurally how to go about this.
We often get questions about recent and upcoming changes to the list of platforms and frameworks that are supported by the InterSystems IRIS data platform. This update aims to share recent changes as well as our best current knowledge on upcoming changes, but predicting the future is tricky business and this shouldn’t be considered a committed roadmap.
Is there a reason why calling %ExecDirect() (or %Execute) won't set the %SQLCODE of the result set to 100 even when the query returns no data?
Here is the code in question with a bit of contrivance to force the issue:
set statement = ##class(%SQL.Statement).%New() set result = ##class(%SQL.Statement).%ExecDirect(statement,"select top 0 0 from Example.Testing") w result.%SQLCODE
The %SQLCODE is set to 0 in this case. The same happens if I use %Prepare and %Execute, e.g.
Since SELECT ... FOR UPDATE is implemented in many RDBMS as a method of explicit row lock acquisition, I think there are many cases where this function is used.
This syntax is not an error for InterSystems products, but it does not acquire row locks as expected.
This article will show you how to achieve equivalent functionality.
Using the Config.Configuration class and SYS.Database class methods, you can create and register a namespace database from the terminal.
Below is a series of execution examples that create database file /CacheDB/AAA/cache.dat and register database AAA and namespace AAA in the configuration file (cache.cpf). * Execute in the %SYS namespace. *
* Make sure that this script runs as the user that is used for all IRIS processes to ensure that the directory has appropriate ownership and permissions *
I need to mount a database from another system. We have copied a device from another systems and mounted the device. I want to mount the cache database on this new device to our current instance of cache. If I add the name and path of this new device to the cpf file, the instance fails to start stating the database does not exist. If I attempt to create the database via the management portal, the new device is not accessible. I am missing something but I am not sure what it is. What do I need to do to make the imported device accessible by my cache instance?
We are looking at what we need to do to migrate from our current usage of Zen reports to InterSystems Reports. One of the hurdles for us is figuring out ways to interact with InterSystems reports programmatically from ObjectScript routines. There is a Java API for it, but it is possible to generate a report from InterSystems reports to a stream object in ObjectScript without diving into Java by using a %Net.HttpRequest. Here is a code example, followed by an explanation:
I am trying to call to a website that renders a xml structure as a response.if I put the url on the browser an xml rendered page is returned but if i call to this using the below code I get an object reference error which I am finding had to understand is there anyone who could help understand this error or point me in the right direction thanks.
I have been trying to do a backup from tape using the D ^DBREST command. I am not able to connect to the tape drive, that recently got replaced. It is configured and I can see it with IBM's ITDT. I did a test and it came back with the error below:
Are there any suggestions on how to fix this or what commands to use to get this opened and connected? I do appreciate it.
In the Windows Ressource Manager I can observe multiple parallel processes coming from cache.exe with read operations to journaling files.
All except one of these processes have the same reads(Byte/s). The processes point to different journal files and constantly read between 200 and 3000 Bytes/s.
The corresponding process via PID in the management portal of Caché shows the process %SYS.Monitor.Control.1. In 3 days of uptime on the server it has run 181.632.583 commands and modified 32.140.642 globals.
We have recently encountered an issue which requires us to define a new identity field (named xMDA in the attached example), instead of using the default ID field.
We need to run an SQL query which unfortunately overrides the ID field (see attached image) but we still need to be able to access the ID field in said query.
ACB> K ^GlobalManualSend ACB> D $System.OBJ.Load("C:\Users\BNAPC\GlobalManualSend.xml") ACB> Set sc = ##class(%Studio.Project).InstallFromGbl("^GlobalManualSend","fv")
Has anyone had success with passing in a collections property within a SOAP request to a Soap Service in Ensemble? Please reply with how you set up that collections property. I am able to successfully send a SOAP request correctly containing the elements of the collection property to Cache, as seen in a custom soap log file which I am using to troubleshoot. But the collection property in the Ensemble request is not getting serialized, meaning MyContainers has nothing.
My.Request consists of a property, MyContainers, which can have 0 or more Containers (My.Container)
You can use the system routine ^DBSIZE to estimate the backup file size (see also Note 1).
^DBSIZE estimates the file size of full, cumulative, and differential backups of the databases selected in the database backup list.
The database backup list is created from [System Administration] > [Configuration] > [Database Backup] > [Database Backup List] in the Management Portal.
Reviewing a client console log, I am finding the message:
Terminal disconnect: The specified network name is no longer available.
This message is repeated in the log dozens of times per day over the last month. The client has not raised a concern and our monitoring has not detected any issues with client ops. The client is not aware of any recent changes with their apps. I am not familiar with this message and whether this message is benign or whether there is any action required,