go to post Alexander Koblov · Aug 31, 2023 I don't know what happens in your particular case. What you can do -- set logging level in the Web Gateway to "ev2" "V2" incudus the following information: "Information regarding basic connection management between the Web Gateway and InterSystems IRIS (Start and Close points for each connection)" Let the Web Gateway run for some time, then hopefully in the csp.log you'll see the details on how new connections are created and old ones are terminated https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls... Other idea -- check Apache settings. Which MPM does it use, what recycle settings for worker does it have? Also, some notes on MPM models of Apache: https://docs.intersystems.com/iris20232/csp/docbook/Doc.View.cls?KEY=GCG...
go to post Alexander Koblov · Aug 10, 2023 If you use IIS -- enable passThrough https://docs.intersystems.com/iris20232/csp/docbook/DocBook.UI.Page.cls?...
go to post Alexander Koblov · Jul 12, 2023 Also you should be able to open any journal file from the Management Portal View Journal -- replace path to a journal file in the URL and you should see its contents
go to post Alexander Koblov · Jul 7, 2023 <NAMESPACE> is thrown when you try to switch to the non-existing namespace. So check to which namespace the project is connected and if this namespace exists
go to post Alexander Koblov · Jun 11, 2023 See documentation for $listnext. It stores a pointer to the current element of the list, thus avoiding recalculating it with each list element access. $List or $Listget has O(n) time complexity. $Listnext has O(1)
go to post Alexander Koblov · Jun 2, 2023 For already running backup or restore you can check "7) Monitor progress of backup or restore" menu in do ^BACKUP routine
go to post Alexander Koblov · May 12, 2023 Generally, if performance matters -- consider using $Listnext instead of $List or $ListGet
go to post Alexander Koblov · May 12, 2023 This is a standard Windows error with the code 64: C:\>net helpmsg 64 The specified network name is no longer available. Some Caché code called some OS system function that returned this error and for some reason it was logged. To investigate this further -- check what process logged the error message. Find in the Caché Audit a Login event with the corresponding process. Perhaps it might give you some hint Generally, messages with severity 0 are informational, 1 -- warnings, 2 -- error, 3 -- critical
go to post Alexander Koblov · May 12, 2023 No. If you have Windows NT authentication enabled to connect to SQL Server then SQL Server ODBC driver uses OS user that executes irisdb.exe process. That's the same use as configured to run service IRIS. If you'd like to use different user for authentication , then choose SQL Server authentication and specify that user and its password in SQL Gateway connection settings
go to post Alexander Koblov · Apr 7, 2023 Yes. See privileged routines https://docs.intersystems.com/iris20223/csp/docbook/DocBook.UI.Page.cls?...
go to post Alexander Koblov · Apr 5, 2023 Did you try to run this after failed set x509 = ##class(%SYS.X509Credentials).GetByAlias("foo") ?
go to post Alexander Koblov · Apr 4, 2023 Try to output %oblasterror: zw %objlasterror Based on "%Admin_Secure:USE" it seems like user who runs the CSP page lack USE privilege on %Admin_Secure resource
go to post Alexander Koblov · Mar 22, 2023 The best option -- create XSD from the XML or get XSD from the XML provider, import the XSD in IRIS, that will generate set of classes to import XML to Other way -- manually create classes for each different xsi:type
go to post Alexander Koblov · Mar 21, 2023 Recompile also FIelds class. Yes, looks correct. I have the following classes: Class dc2303.Field Extends (%Persistent, %XML.Adaptor) { Parameter XMLTYPE = "UDFLookupFieldInstance"; Parameter XMLFORMAT = "literal"; Parameter XMLNAME = "Field"; Parameter NAMESPACE = "http://www.civica.co.uk/ParisConnect/ConnectXml/1.0/Messaging"; Property Suffix As %String(XMLNAME = "Suffix", XMLPROJECTION = "ATTRIBUTE"); Property Description As %String(XMLNAME = "Description", XMLPROJECTION = "ATTRIBUTE"); Property ID As %String(XMLNAME = "ID", XMLPROJECTION = "ATTRIBUTE"); } Class dc2303.Fields Extends (%Persistent, %XML.Adaptor) { Parameter XMLFORMAT = "literal"; Parameter XMLNAME = "Fields"; Parameter XMLSEQUENCE = 1; Parameter NAMESPACE = "http://www.civica.co.uk/ParisConnect/ConnectXml/1.0/Messaging"; Parameter SUPPRESSTYPEPREFIX = 1; Property Fields As list Of Field(XMLNAME = "Field", XMLPROJECTION = "ELEMENT"); /// d ##class(dc2303.Fields).TestFieldsCorrelate() ClassMethod TestFieldsCorrelate() { Set reader = ##class(%XML.Reader).%New() Set tSc=reader.OpenFile("c:\temp\Fields.xml") #dim match as Fields Do reader.Correlate("Fields","dc2303.Fields") While reader.Next(.match,.tSc) { w !, "Hurrah" } If $$$ISERR(tSc) { w !, $SYSTEM.Status.GetErrorText(tSc) } } } And fields.xml is <Fields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <Field xsi:type="UDFLookupFieldInstance" ID="2925" Description="FIRE ALARM ACTIVE" Suffix="FDT_ACTIVATE"/> </Fields>
go to post Alexander Koblov · Mar 20, 2023 Should work. I actually tested it. Did you recompile both classes? Do you get the same error still?
go to post Alexander Koblov · Mar 19, 2023 Check carefully. Note -- in ^%ISCLOG (with percent) you enable the log. Then you read ^ISCLOG (without percent) in %SYS namespace. When I repeated steps that I suggested to you, I saw the following error in ^ISCLOG /* ERROR #5002: ObjectScript error: <PROTECT>^%CSP.Login.1 ^|^^c:\intersystems\iris2023x1\mgr\|dc.CustomLogin.1 */ Then I enabled auditing of Protect events, reproduced the eror and got more details: Description: Attempt to access a protected resource Timestamp: 2023-03-19 16:01:38.000 Username: CSPSystem UTCTimestamp: 2023-03-19 15:01:38.000 Pid: 10896 Event Source: %System JobId/JobNum: 131089/17 Event Type: %Security Session ID: eK95W6SMCS Event: Protect IPAddress: 127.0.0.1 System ID: DEP5570AKOBLOV:IRIS2023X1 Executable: CSPa24.dll Namespace: %SYS Index: 196 Roles: User Info: O/S User: CSP Gateway Routine: ^%CSP.Login.1 |"^^c:\intersystems\iris2023x1\mgr\irislib\"| Authentication: Password Event Data: <PROTECT>^%CSP.Login.1 *^|^^c:\intersystems\iris2023x1\mgr\|dc.CustomLogin.1 Indeed, user CSPSystem does not have READ permission on irissys database, where custom login class is located. Rather I should have created a new role that has only READ permission on %DB_IRISSYS resource, not RW. I added role %DB_IRISSYS to user CSPSystem, closed connections from Apache to IRIS, so that the role is added on new connection, then login page began to work
go to post Alexander Koblov · Mar 18, 2023 Documentation has an important note about this parameter: This parameter has been retained for compatibility, but should not be used when building new applications. https://docs.intersystems.com/iris20223/csp/docbook/Doc.View.cls?KEY=RAC...
go to post Alexander Koblov · Mar 18, 2023 xsi:type is a special attribute IRIS analogue is XMLTYPE parameter of the class, You need to remove Property Type from the Field class and add the following parameter, then recompile both Field and Fields Parameter XMLTYPE = "UDFLookupFieldInstance";
go to post Alexander Koblov · Mar 18, 2023 Yuri, enable ISCLOG, reproduce the error, disable ISCLOG and then check if it has any errors, e.g. errors. %SYS>kill ^%ISCLOG, ^ISCLOG %SYS>set ^%ISCLOG = 3 //reproduce the error %SYS>set ^%ISCLOG = 0 %SYS>zw ^ISCLOG Afaik, with custom login pages user CSPSystem needs to have READ permissions on a database where custom login page class is located