go to post Don Martin · Aug 1 The source of this issue lies in a property setting in the EnsLib.SQL.CommonJ class, which gets extended by the EnsLib.SQL.OutboundAdapter. Class EnsLib.SQL.CommonJ Extends EnsLib.JavaGateway.Common [ Abstract, ClassType = "", ProcedureBlock, System = 4 ] { . . . /// When greater than this length of characters a VARCHAR column is /// to be treated as a LOB and stored in a stream. <br> /// The default is 32767. <br> /// Use -1 to use the system maximum string length of 3641144. <br> /// Note the system maximum string length may change in future versions /// and therefore the value used when -1 is selected can change. <br> /// If the value entered is greater than the maximum system string length /// then the maximum system string length will be used. <br><br> /// This setting can be used for example when 'text' columns on the /// target system cannot be retrieved as LOBs and it is necessary to /// CAST the column as a VARCHAR longer than 32767. <br> Property MaxVarCharLengthAsString As %Integer [ InitialExpression = 32767 ]; If the column you are pulling data from is larger than varchar(32767), the data will be treated as a LOB. There are a couple of workarounds. If you are working with a database column configured to be larger than varchar(32767), but you're confident the data length in your query result for that column will be less than 32767, you can cast the column in your select statement as follows: select cast(column_name as varchar(32767)) from table; A more robust solution is to modify the MaxVarCharLengthAsString property in the Adapter. The following worked for me - I was able to pull a varchar(65535) column from Redshift without casting. Class Example.Redshift.MyGenericOperation Extends EnsLib.SQL.Operation.GenericOperation { Method OnMessage(pRequest As Ens.Request, Output pResponse As Ens.Response) As %Status { set ..Adapter.MaxVarCharLengthAsString = -1 set tSC = ##class(EnsLib.SQL.Operation.GenericOperation)$this.OnMessage(pRequest,.pResponse) return tSC } } Fair warning - I'm new to Intersystems, so I don't know if there are better ways to do this or if there are any hidden problems with what I proposed. Input from anyone who has suggestions to improve this approach would be appreciated!
go to post Don Martin · Jul 16 Was this issue ever resolved? I'm experiencing the same thing when trying to read an Amazon Redshift column set up as varchar(65535) from an Enslib.SQL.OperationGenericOperation in a production. I can read any of the other columns in the table, but when I try to read the varchar(65535) column, I get the following error: An error was received : ERROR #5023: Remote Gateway Error: JDBC Gateway getClob(0,1) errorRemote JDBC error: Cannot convert the column of type VARCHAR to requested type long.. I know Redshift is similar to postgresql and doesn't support CLOBs, but hoping there is a workaround. As Joost stated, casting the column to a different data type doesn't seem to work.
go to post Don Martin · Jul 7, 2022 I've tried running a couple of newer containers to see if the issue was fixed in newer versions of the community edition, however, I'm not able to get the containers started. containers.intersystems.com/intersystems/irishealth-ml-community:2021.2.0.651.0 containers.intersystems.com/intersystems/irishealth-ml-community:2022.1.0.209.0 I get the following in the /store/iconfig/mgr/messages.log file when trying to start either instance. 07/07/22-20:58:55:213 (412) 0 [Utility.Event] ISC_DATA_DIRECTORY=/store/iconfig/07/07/22-20:58:55:224 (412) 0 [Utility.Event] Executing /usr/irissys/bin/iris qlist07/07/22-20:58:55:329 (412) 0 [Utility.Event] Versions are different07/07/22-20:58:55:329 (412) 0 [Utility.Event] Source /usr/irissys/: 2021.2.0.651.0com07/07/22-20:58:55:329 (412) 0 [Utility.Event] Destination /store/iconfig/: 2021.1.0.215.3com07/07/22-20:58:55:351 (412) 0 [Utility.Event] Executing /usr/irissys/bin/iris version07/07/22-20:58:55:354 (412) 0 [Utility.Event] Performing upgrade of /store/iconfig/ from /usr/irissys/07/07/22-20:58:55:354 (412) 0 [Utility.Event] Upgrading from version 2021.1.0.215.3com to 2021.2.0.651.0com07/07/22-20:58:55:354 (412) 0 [Utility.Event] Executing /usr/irissys/bin/iris qlist07/07/22-20:58:55:380 (412) 0 [Utility.Event] Executing /usr/irissys/bin/irisdb -s/store/iconfig/mgr/ -cd07/07/22-20:58:55:470 (412) 0 [Utility.Event] Executing rm -f shuttest.txt07/07/22-20:58:55:540 (412) 3 [Utility.Event] Error during Upgrade,ERROR #5001: Instance IRIS was not shut down correctly, may have been forced
go to post Don Martin · May 25, 2022 Just wondering if this issue has been fixed in a new community edition release?
go to post Don Martin · Feb 2, 2022 @Yuri Marx The Predict-Maternal-Risk app linked above worked great! No errors, and I was able to get all the way through the entire set of ML queries to build, train, validate, and predict risk using the training and validation data.
go to post Don Martin · Feb 2, 2022 Yuri, Thanks for releasing this app. I've hit a couple of snags that you might be able to help with. 1. The table you reference for creating the training and test data views is SQLUser.HeartDisease. I don't see this table in the Management Portal, but perhaps you meant to use the dc_data_health.HeartDisease table to create the training and testing views? 2. Using the dc_data_health.HeartDisease table works as expected for creating the training and test data, and creating a model based on the training data view appears to work as expected. However, when I execute the 'TRAIN MODEL HeartDiseaseModel' query, I get this error: [SQLCODE: <-185>:<Predicting Column only has one unique value in the dataset>] [%msg: < Label column only has one unique value in the dataset.>] Any thoughts on what the issue might be? Thanks again - Don Martin
go to post Don Martin · Jan 28, 2022 Last night I attempted to pull the Iris Health with ML container image and got the following error. podman pull containers.intersystems.com/intersystems/irishealth-community-ml:2021.1.0.215.3 Trying to pull containers.intersystems.com/intersystems/irishealth-community-ml:2021.1.0.215.3... Error: initializing source docker://containers.intersystems.com/intersystems/irishealth-community-ml:2021.1.0.215.3: reading manifest 2021.1.0.215.3 in containers.intersystems.com/intersystems/irishealth-community-ml: manifest unknown: The named manifest is not known to the registry. The web page that directed me to the above container image is https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=PAGE_containerregistry#PAGE_containerregistry Is there another location we should be pulling that image from? Thanks.
go to post Don Martin · Dec 16, 2020 Hi Stefan, Any update on making the IRIS for Health Community Edition available on the docker store. We'd really like to start playing around with this while we wait for a purchase contract to get done. Thanks, Don Martin, Sanford Health.