go to post Dmitry Maslennikov · Feb 23, 2017 Looks like, you call this service in the wrong way. I would suggest, that you call it by URL http://localhost:57772/csp/samples/REST.DocServer.cls while you should use this URL http://localhost:57772/csp/samples/docserver/namespaces But before you should activate application /csp/samples/docserver, for details look at the documentation.
go to post Dmitry Maslennikov · Feb 23, 2017 Please put some example of your code here, and how exactly you call your REST.
go to post Dmitry Maslennikov · Feb 16, 2017 As the last argument, you should use routine or classmethod, not command. csession CACHE -U"%SYS" "##class(%SYS.System).InstanceGUID()"
go to post Dmitry Maslennikov · Feb 11, 2017 $case is used to convert one value to another. Like, you have some code, but you need a display text for it, you can do so: set display=$case(gender,"F":"Female","M","Male",:"Unknown") $select returns value when meets the first true condition. It needs if can't compare only one variable, or you have some more conditions. write $SELECT(0=$ISVALIDNUM(x):"not a number",x=0:"zero",""=$NUMBER(x,"I"):"not an integer",x#2=1:"odd",1:"even")
go to post Dmitry Maslennikov · Feb 7, 2017 Hi Greg, It is a very interesting question. I can't give you all that you want, but I'll try to give some hints. Deploy ScriptIn first, you are looking for some script. While you have to execute some script from Operation System, you have different ways how to do it. And here again, depends on what are you going to inside Caché. As you working on some Linux system, I'll start from it.Linux:To start some script inside of Caché you may use csession tool, in two ways: specify some routine or class, which will be executed at once, and after finish, that code csession will exit. In this case, you have to use some internal code, which already ships by InterSystems, or you can install some of your code.csession ENSEMBLE -UUSER ##CLASS(package.class).method()or you can write some COS code, generated in your script, or just in a text file near to script. And send this code to csession. csession ENSEMBLE -UUSER < deploy.mac Windows:On a Windows system, you don't have csession tool. But here available another tool cterm.you can also specify routine namecterm /console=cn_ap:ENSEMBLE[USER]:^%Dbut cterm also support special scripts format, which supports even interactive mode.For both Windows and Linux also possible to launch executable file cache, and call your code in almost the same way as it does csession.DeployTo launch that script, you can use any of Continuous Integration system, which you like. I would recommend Jenkins, it is an opensource project, has lots of plugins, and supports multi servers installation. You can configure to launch your script, just by timetable, every time. Or check if appeared some new commits in your chosen System of control version (Subversion or so on), since it was run last time. Multi-server version may help have some different servers with a secondary installation of Jenkins, and control all of them from the master node.Last time I found GitLab for myself, it quite good git server, with CI service inside. Supports multiple runners for CI, and you can choose which runner should execute some stages. You can easily configure multiple tasks which will be run after every commit. Like build, test and deploy if everything is OK.
go to post Dmitry Maslennikov · Jan 25, 2017 You can get list of routines with a query StudioOpenDialog in class %RoutineMgrTo edit routine you have at least two ways. Open it via class %Routine which is just a stream with a code inside. So, you can create a new stream, with a new content, and replace old one. Another way is to use commands: ZLOAD, ZINSERT, ZSAVE.
go to post Dmitry Maslennikov · Jan 19, 2017 this version number is not enough, please show output from this command write $zv Looks like, your installation in 8-bit mode instead of Unicode. In that case such behavior possible. That's why we are asking for full version name from $zv,
go to post Dmitry Maslennikov · Jan 19, 2017 Please add more details, how did you try to do it, and $zversion of your instance.
go to post Dmitry Maslennikov · Jan 18, 2017 You can find answer on your question in the documentation.The Caché Java Binding is DeprecatedJava Persistence Architecture (JPA) is the recommended persistence technology for complex object hierarchies in Java projects. Caché and Ensemble currently support JPA 1.0 and 2.0 via the Hibernate implementations of the JPA specifications. See “Using the Caché Hibernate Dialect” in Using Caché with JDBC.Extreme Event Persistence (XEP) is the recommended persistence technology for high-performance simple to medium complexity object hierarchies in Java projects. See “Using eXTreme Event Persistence” in Using Java with Caché eXTreme.
go to post Dmitry Maslennikov · Jan 18, 2017 You can try to export all from MySQL, and import to Caché, with command Do $SYSTEM.SQL.DDLImport("MySQL","_SYSTEM","C:\export.sql") You can also do import in the System Management Portal. Or migrate data from ODBC source.
go to post Dmitry Maslennikov · Jan 18, 2017 It is not a problem for Caché, you use x86 and limitation from architecture.You have to upgrade your server to 64bit, and then you may use even hundreds of gigabytes of memory.
go to post Dmitry Maslennikov · Jan 16, 2017 Looks like, you don't know how this technology works.The server will send content after all content is ready to send. Browser shows page, just after loading all the page, or partially, if this page is too big.To do what you want, you should have some code on client side, which will ask the server for the new lines by Ajax. Or with WebSocket, just get new lines from the server. But it means that process which generates such logs, should be different to the session process.
go to post Dmitry Maslennikov · Jan 13, 2017 In current stage, we do not have any Caché code, yet. But I don't see any troubles here. You may use base Ensemble image, and run it on GitLab environment, or on your own server, via gitlab-runner and preinstalled Ensemble. With GitLab-CI, possible lots of different ways.
go to post Dmitry Maslennikov · Jan 13, 2017 Even more interesting that, GitLab has their own docker registry. And you can even build your own image for ci with ci.We build Ensemble container. You can look at archive of my project ensemble.zip . Simple image with Ensemble, without Samples and Docbook databases with minimal security.
go to post Dmitry Maslennikov · Jan 13, 2017 Good choice, I'm already using gitlab in our company, with closed sources. In our process, I even deploy to our own windows server. Our application on Angular 2. it is our gitlab-ci.yml, I've removed deploy stage. image: node:5 stages: - test - build cache: key: "$CI_PROJECT_NAME/$CI_BUILD_REF_NAME" paths: - ./node_modules/ before_script: - export PATH=$PATH:./node_modules/.bin/ - npm install tslint_job: stage: test tags: - linux - docker script: - ng lint test_job: stage: test tags: - linux - docker script: - karma start --browsers PhantomJS --single-run build_job: stage: build tags: - linux - docker artifacts: expire_in: 1 week paths: - dist/* script: - ng build --aot-prod --bh "./"
go to post Dmitry Maslennikov · Jan 12, 2017 There are not such methods, we only have function which converts delimited string to $listbuild format and back. And you can do it in this way, without any looping, but only if you already know how many items you have. USER>set string="a,b,c,d,e,f" USER>set list=$lfs(string,",") USER>zw list list=$lb("a","b","c","d","e","f") USER>set $lb(array(0),array(1),array(2),array(3),array(4),array(5))=list USER>zw array array(0)="a" array(1)="b" array(2)="c" array(3)="d" array(4)="e" array(5)="f"
go to post Dmitry Maslennikov · Jan 12, 2017 You can reset all changes which you did, when you start newly created container from an image. Use docker run with a flag --rm to remove container after exit.
go to post Dmitry Maslennikov · Jan 12, 2017 What do you want to fix? Locked access or change security level? Mostly when you run some server application inside a container, it means that no needs any changes of settings, while this container is up because all that changes may disappear after restart container form a new image. I would recommend changing security level in the installation process. You can do it with some environment variables described in the documentation. Just add this lines in the Dockerfile before cinstall_silent command ENV ISC_PACKAGE_INITIAL_SECURITY="Locked Down" \ ISC_PACKAGE_USER_PASSWORD="secretpassword" And your installation will be secured. Read more about initial security settings in the documentation.
go to post Dmitry Maslennikov · Jan 11, 2017 Hi Natasa,Yes, lots of time. Look at examples:ccontainermain ecp-client example here
go to post Dmitry Maslennikov · Jan 11, 2017 look at this iconfound here/opt/ensemble/csp/broker/portal/icon_ensemble.png