go to post Eduard Lebedyuk · Jan 16, 2020 Please post query plans. The most important question is - are they actually taking different time to run?
go to post Eduard Lebedyuk · Jan 16, 2020 Ok i will try that, but there's a way to check how many Java Gateways are running? There are either production gateways and system gateways, they are listed in SMP - System Administration - Configuration - Connectivity - Object Gateways.
go to post Eduard Lebedyuk · Jan 16, 2020 a. Check that the JAR you import has the new code. If you build in a separate directory and then copy the JAR into a final directory it can fail as java locks loaded JAR files on OS level. b. Try stopping all running Java Gateways before copying the JAR and running UploadJar. Do not create new gateway for every import. c. What does zw %objlasterror report after (4)?
go to post Eduard Lebedyuk · Jan 16, 2020 Thanks! Turns out PackageDefinition Queries are not based on PackageDefinition class.
go to post Eduard Lebedyuk · Jan 15, 2020 Create this class: Class ABC.Try { /// w ##class(ABC.Try).PackageExists() ClassMethod PackageExists(package = "ABC") As %Boolean [ CodeMode = expression ] { ##class(%Dictionary.PackageDefinition).%ExistsId(package) } } Test: >w ##class(ABC.Try).PackageExists() 0 It also won't be available in GetPackageList. ABC.Try can also extend registered or persistent to the same effect.
go to post Eduard Lebedyuk · Jan 15, 2020 %Dictionary.PackageDefinition does not contain all packages, only ones with immediate tables (see Solution 1). If it did, calling %ExistsId would be enough.
go to post Eduard Lebedyuk · Jan 15, 2020 Adapted from @Krishnamuthu Venkatachalam answer ClassMethod Rename(oldClass, newClass) As %Status { #dim sc As %Status = $$$OK quit:'##class(%Dictionary.ClassDefinition).%ExistsId(oldClass) $$$ERROR($$$GeneralError, "Old class does not exist") quit:##class(%Dictionary.ClassDefinition).%ExistsId(newClass) $$$ERROR($$$GeneralError, "New class already exists") merge ^oddDEF(newClass) = ^oddDEF(oldClass) $$$defClassKeySet(newClass, $$$cCLASSname, newClass) // Set class name $$$defClassKeyKill(newClass, $$$cCLASSstorage) // Kill old storage do UpdClsDef^%occLibrary(newClass) set sc = $system.OBJ.Compile(newClass, "/displaylog=0 /displayerror=0") quit:$$$ISERR(sc) sc set sc = ##class(%Dictionary.ClassDefinition).%DeleteId(oldClass) quit sc }
go to post Eduard Lebedyuk · Jan 14, 2020 I get this error on access: <PRIVATE PROPERTY> And the property is indeed marked as private.
go to post Eduard Lebedyuk · Jan 14, 2020 To determine contents of %request, %response and %session objects you can add this to the beginning of your code set %response.ContentType = "html" do ##class(%CSP.Utils).DisplayAllObjects() quit $$$OK It would return detailed information about the request as an html page.
go to post Eduard Lebedyuk · Jan 13, 2020 I thought my for loop would be endless to as x is increased on each cycle.
go to post Eduard Lebedyuk · Jan 13, 2020 I'm out of ideas. There should not be any changes between file and character streams besides encoding. I think you need to share a minimal sample that reproduces this error or contact the WRC.
go to post Eduard Lebedyuk · Jan 13, 2020 What's your SubdirectoryLevels setting value? Try to move Archive Path outside of File Path.
go to post Eduard Lebedyuk · Jan 11, 2020 recreates the file with a randomized OriginalFilename Recreates in the same folder? What is the value of FilePath, WorkPath, ArchivePath, DeleteFromServer settings? You need to solve the problem with file recreation, as specifying "binary" as a Charset setting gives you the correct hash.
go to post Eduard Lebedyuk · Jan 10, 2020 So workspace per server and multiple namespaces per workspace? Curiously, what do you expect from XData? Filed.
go to post Eduard Lebedyuk · Jan 10, 2020 When do you go look for a query plan? Usually after monlbl indicating a problem. How are you currently accessing query plans? SMP, 100%. I think the most interesting thing to know is which query slows down the system. If there are two queries: Takes a minute, runs daily Takes a second, runs thousands of times per hour I'm more interested in optimizing the second one. SQL Runtime Statistics helps, but improvements in this area (and more visibility) would be great.