Hi,
you can try to write to @Olga Zavrazhnova
- Log in to post comments
Hi,
you can try to write to @Olga Zavrazhnova
Hi,
you can start it using
do ##class(%Net.Remote.Service).StartGateway("%Java_Server")
Hi Kurro,
if the production stores data that needs to be maintained in the DB, you need to do something more complex (like mapping the data globals in the new NS to the old DB.
If not the safest way to test and also migrate everything is what you are proposing:
If something on the new production goes bad, you can easily enable the disabled pieces on the old version, and disable them on the new one.
Pietro
Hi,
may be that you are connecting to the webserver port and not the superserver one?
Can you post an "iris list"?
You can also include the connection in a try/catch and check on iris in application error logs and audit database (the audit db probably is the one that you need to check first).
you can have a look at a script that i've made that basically implements a remote cli to iris
Hi!
May be with something like this
https://community.intersystems.com/post/get-most-out-intersystems-sam-i…
or with a custom setup of grafana/prometheus to send alert and not only visualize them.
Be also advised that it's going to be deprecated
https://community.intersystems.com/post/deprecation-intersystems-system…
Hi @Sandeep K C
As said before you can use zf, but you need to configure the underlying os to let you use unauthenticated access between 2 systems (sudo and ssh keyless).
Hi,
You should consider to check other is errors.
Usually happens when /tmp is full, when the disks are slow (top command and look for "wa" statistic), check system logs and, may be, apache limits.
It's saying that he can't create a job, so you are short on some resource.
Or the antivirus...
no no for the testldap don't remove it. Test ldap will run the query as it will do on the login giving you the output of the search for debugging. May be how samacountname is written?
On an AD installation i got it as "sAMAccountName"...
i think that zauth will conflict with ldap integrated, but before switching off zauth, make sure that ldap works as expected using the "test ldap authentication" on the previous screen..png)
What i see from your screen is that you may have errors in the "hostname" and "search username dn".
Hostname should be the ip or fqdn of your AD domain servers (start with one and then add all the other).
Search username has to be specified in LDAPish way so something like
cn=ensemble Service,dc=osumc,dc=edu
Hi,
as always you can, but it's quite complex.
in order you should:
Everything is scriptable, but it can be complex because it involves 2 servers
Hi Scott,
i've setup ldap auth and basically it automatically do what you are looking for. The only thing is (like you saw) that you have the AD groups named as IRIS is expecting.
This is an example of what we are using and to have a %All a user must be in the ad group isc_Role_%All
.png)
never tried but worked with a lot of copy between versions and architectures (think that this isn't different).
The first error is from the restore, you are trying to restore a db on an existing one with different block size (8k vs 16k may be). Try to restore to a new database and this will be solved.
The other problem that you are facingis that replacing the mgr will result in a broken instance.
With the restore and also by copying the databases (more or less is the same thing), I would NEVER restore the default databases :
IRISSYS
IRISLIB
IRISLOCALDATA <-- probably could be replaced
IRISAUDIT <-- probably could be replaced
ENSLIB
HSCUSTOM
HSLIB
HSSYS
I'd say that if you can shut down both instances you can simply copy the iris.dat files in place from windows to container. This way you won't lose time in doing backup / restore
Keep in mind that every configuration done needs to be synced on the container (users, privileges, web applications, roles, namespaces,....).
Hi,
you could configure sudo like
irisusr ALL = NOPASSWD: /usr/bin/systemctl stop httpd.service
where irisusr is the user that runs iris.
For the other server you could do the same thing and setup ssh to authenticate via keys
On source server:
su - irisusr
ssh-copy-id this_is_the_other_web_server
but the real question is: why do you want to stop httpd?
You could configure webgateway to have the other server as a failover.
configure connection to server2
setup application to be server1 primary, server2 backup
wonderful, i'll use this snipplet in a future project
Hi,
i'll try a copy after join the mirror (step 11 before step 9) so that mirror knows that there's a new member.
So basically shut down both iris, copy the files from TEST_NODE1 to TEST_NODE2 and start them again (first TEST_NODE1 and the TEST_NODE2)
Pietro
yeah, i've read that and saw this in a lot of other SQL DB, but when it comes to reality with a large amount of insert/delete made to the table the index is corrupted and there's the need to rebuild it like once a week.
Have you got any experiece like this? I need to create an index and use it on a table that will costantly have insert and delete (transactional data, a list/queue of transactions that needs to be processed)
Thanks
I think that it depends on the filters in studio. You should be looking for a "class definition CLS".
Try to check it with the web portal. System explorer > classes, choose the namespace (should be "monitor"), look at the classes
You can became iris owner with
su - iris owner
Via sudo or via root user
Moreover you can run
iris list
To see where iris is installed.
Other "funny" ways can be
lsof | grep iris
ps ef | grep iris
Hi, to examine and kill a job i'll go via terminal in iris session, zn to %SYS and execute ^JOBEXAM that is a sort of "top" for linux.
in the process list you can push (or keep pushed) spacebar to update the screen and keep an eye on the column "globals" and "lines", the ones that will grow really fast are probably the jobs that you are looking for.
Using "n" and "p" you can go to "Next" or "Previous" page.
When you fins the process that in your opinion is the one that needs to be killed you can examine what it's doing pushing "E" to "Examine" and give the job number (the first column). Also in this case pressing spacebar will update the screen.
When you are sure that you want to kill that process proceed with "t" to "Terminate" the job followed by the number.
Doing so, you can easily find all the jobs that needs to be killed
yes if you have the global mapped in some different db, GOF will tell you so you need to go first with ^%GD to display the mapping, zn to that db and use ^%GOF.
^%GIF can be used anywhere inside the Namespace.
Good Job! Very useful tutorial!
Ok, if we are talking about code in deployed mode you simply can't do this. You must get a code compiled for your actual version.
You can try with $SYSTEM.OBJ.Export which export the obj, but you will probably get the same error.
Hi, you could check what's happening using Wireshark to analyze the TCP traffic and the request that you are doing.
Are you getting this error on the server side, what you got on client side?
Seems that they are not communicating or the server is getting something wrong
Hi, you simply got an information (0 in the log), these are system db so you can choose to not backup them (they are included in the installation) and running the task as another use won't solve the problem (that is not a problem).
Also mounting them as rw is a bad bad thing because you can end up in modifying the DB (Andi you don't want this).
You should simply ignore the message and if it's a monitoring system that warns you, set it to check for 1 or above severity (I'll go for 2 or more).
If you really really want to get rid of it and still backup every db, write a custom backup routine tanto mounts the db row, backup them, get them ro again. But this would be a waste of time because it's just an info
why don't you use ^%GOF and ^%GIF? They should be compatible i think.
Else the "bad" workaround is do something dirty, you could try to:
Create a new DB in the old instance
copy the global in that db
copy the db on the new instance
attach the db
move your global where you like
Don't know if this works, it "should"
Hi Scott,
not an expert for zstop, but what you are looking for cannot be developed with the zstop.
With an "iris force", hardware failure (hard power off, server fault,... anything that is not a "polite" shutdown) or other similar condition where iris simply is killed, no zstop is executed. You can only be aware of an unclean shutdown at the iris restart, but that's too late for what you are looking to do.
What you can do is to have an agent that monitors the iris instance (qlist, process, messages.log) and execute action when certain conditions are met.
Moreover i haven't found anything on the "shutdown" cause, it's just a shutdown inside iris i think
Pietro
unfortunately unless you got a very very high log set in the instance and a very long journal history you can't discover that.
If you got the info you can find in the journal the global change, get the process info and search the log for them. But usually is something that you can spot in the near time or something that happens on a regular basis, something spot is really difficult to find in that way.
Hi,
never done that, always installed production under linux. Respecting the allocation size it will be good to match the same size so if you are using only 8k, it should be better to have 8k also on fs so 1 unit for db should also be 1 unit for fs and it won't be split in 2 fs operation. 8k should be fine because you can accept that if you are using a mixed db allocation size for 8k and 16k it will always be beneficial also for 16k chunks.
On this argument always remember to align the partition and the fs dropping the first bytes as per ms best practice so that also the disk (if on a raid) could match the writes
https://support.microsoft.com/en-us/topic/recommendations-and-guideline…
diff between 2 environment made easy.
Have i ported all routines from env A to env B?
Are they the same?
Exporting everything in a single file allow you to use something like winmerge and make a full diff
Hi,
the most straightforward thing to do is to use the upload manager that will take care of everythings.
But if you want to go via code, as Davide said, you should use ##class(User.SSUser).%New() to create the user.
Keep in mind that the user at first login MUST change the password. To avoid that, you have to have 2 row in the password table, so you should change the password one time via class and then the user should be able to login with the specified credentials.
So the main suggestion is to go with upload manager and, may be, ldap as a backend for password auth.