It is not very fresh but might be useful anyhow Sharding evaluation #1 + Sharding evaluation #2
- Log in to post comments
It is not very fresh but might be useful anyhow Sharding evaluation #1 + Sharding evaluation #2
Thanks for raising the issue.
I experience the same behavior with a fresh Docker Image
The SQL statement should look slightly different
Insert Into TableX (Name, Address, Phone)
SELECT 'Name1', 'Address1', 'Phone1'
UNION
SELECT 'Name2', 'Address2', 'Phone2'
UNION
SELECT 'Name3', 'Address3', 'Phone3'the base class for all Webpages (also REST) from IRIS is %CSP.Page.cls
When a csp request is received, the CSP Server creates an instance of the %CSP.Request class. This is accessible via the %request variable. It holds all information about the call.
Also all CGI variables. HTTP_REFERER might be what you look for
and that's all core HTTP
maybe a misunderstanding.
if you execute a HTTP request YOU are the visitor at that side and get a response.
do you look for your own IP address?
Hi Nigel,
I experienced this missing UNINSTALL feature several times filling up my working environment.
So I adopted this strategy:
- if there is no Docker container in the project I instal one of the prepared templates
- As packages are (or should) independent of the platform I enter the container and install it there
simply running docker-compose exec -u root iris bash and execute the installation
and when finished just removing containers and images and I'm back to roots.
It only fails if I run against the 5 connections limit of the community license. But that's untypical.
"any other web-app"
- SMP doesn't do it
- webterminal ?? -
no qspec required.
USER>set file="box.xml"
USER>set sc=$system.OBJ.Export("box.GBL",.file)
Exportieren in XML gestartet am 06/08/2021 11:46:58
Exportiere Global: ^box
Export erfolgreich abgeschlossen.
USER>$type box.XML
<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25" zv="IRIS for Windows (x86-64) 2021.1 (Build 209U)" ts="2021-06-08 11:46:58">
<Global>
<Node><Sub>^box</Sub>
<Node><Sub>1</Sub>
<Node><Sub>1</Sub>
<Data> </Data>
<Node><Sub>0</Sub>
<DataBase64>G1syOzRI
</DataBase64>
</Node>
<Node><Sub>1</Sub>
<Data>1</Data>
</Node>
<Node><Sub>2</Sub>
<Data>...456..9</Data>
</Node>
</Node>
<Node><Sub>2</Sub>
<Data> </Data>
<Node><Sub>0</Sub>
<DataBase64>G1syOzEwSA==
</DataBase64>
- - - - removed -------
</Node>
</Node>
<Data> </Data>
USER>I think $system.OBJ.Export() with type .GBL .
I don't have qspec at hands
elementary differences:
See onlinme docu how tp pass parameters
https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=TCOS_DO
https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_cjob
Ok. this is not MS-SQL.
Connect with your Studio to the correct Namespace and print out the related ClassMethod.
This would most likely be some code in ObjectScript and not look like SQL
ownership is typically irisowner:irisuser.
Apply chown to the iris directories & files
You are most likely blocked by a firewall on the way to your installation
instead of simple ls run ls -l to see who is the owner.
most likely it's the user that installed iris.
to fix it run sudo chmod . . .
I did this more than a year ago. It was quite some effort but it worked nicely.
But I was blocked by ISC and got under pressure not to publish it for copy-right reasons.
So be careful not to have this same conflict. Pls. don't ask for details!
OK! Thanks for resolving the miracle!
And we just learned IRIS does JSON . . . more or less . . . some times . . . somehow . . . fuzzy
A real enlightenment that I was not aware of !
I just wonder if WRC would care about those inconsistencies!
After a lengthy discussion, you still seem not to be aware of what information you send and what is coming back.
It may help just to watch your communication using TcpTrace or WireShark to find out what ERROR to chase at all.
As I distrust your initial JSON construct I checked my personal opinion with
a public JSON validator. https://jsonformatter.curiousconcept.com/
Info: Remove trailing commas.
But this was pointed out correctly already before me by @Julius Kavay
I'd strongly recommend to use %Stream since 3.6 MB is huge for a String but not for a PDF.
Besides the absolute maximum of 3.6 MB for %String you may have additional limits of %String.
Dating from ancient ODBC the default max. for Strings is 50 !!!! If you don't set (MAXLEN="") explicitely
I don't think so. But Caché has a bunch of quite useful tutorials included in the kit.
*** https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_FORDER
*** https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_FQUERY
As you have Caché you also have Namespace SAMPLES with all variants
I assume you have a PatientID so you might be able to select your records using an INNER JOIN in this way:
SELECT <.......your columns....,contacttype,....>
FROM my.patient as pat
INNER JOIN
(select PatientID, MAX(DateFrom) as MaxDate FROM my.patient Group by PatientID) as max
ON
pat.PatientID=max.PatientID AND pat.DateFrom=max.MaxDate
WHERE <...whatever... >so you get the records with the highest DateFrom by Patient
Did you perform "Purge cached queries" before your test?
I tried it with some test data and could see the expected query plan using
Index numDossiersMERIdx On numDossiersMER(ELEMENTS);
.png)
if you use Relationship many As obj [ Cardinality = many, Inverse = one ];
you create a managed pointer from many->one with no sequence of insert.
Though it may be kept if new "many" elements are inserted in sequence with ascending IDs.
Later (manual?) add to the relationship of already exisiting "many" may break this.
To bypass this limitation I see 2 possible solutions:
- you add a property (auto-incremented, insert sequencer) to "many" to keep the insert sequence
e.g. Property InsertSequence As %Integer [ InitialExpression = {$increment(^InSeq)} ];
which is rather brute force, but available to manual adjustment for existing data
- you add to "one" side: Property ManyList As %ListOfObjects;
and add your many with Insert() function at and the end of the individual list.
The advantage of this approach is to have the freedom to change the sequence at your needs
And it also allows a kind of m:n relation as you are not limited to add your many to a unique one.
This is not my preferred solution and requires some coding erfort.
Bravo @Oliver Wilms ! ![]()
in order to provide efficient updates for DeepSee there is a feature named DSTIME.
It writes kind of a log about inserts, deletes, updates. This may suit your requirements.
About 2 years ago I have written an article about the subject. Take a look if this is what you need.
https://community.intersystems.com/post/synchronize-data-dstime
All your examples are correct.
BUT:
- all your examples assume that docker is available to the users.
- this prerequisite is not always given. And may even contradict customer-defined rules.
And as I mentioned earlier: customers pay so they define their rules.
Losing a bid just because someone deep in the background dislikes SSH access must not be acceptable.
[I have learned my lessons using VMware long before it became an "accepted platform" ]
Did you ever try this?
https://learning.intersystems.com/course/view.php?id=28