Browse all forums dedicated to the Rocket MultiValue product family.
Recently active
jEDI that allows you to access the XML file as if it was a standard jBASE hashed file During a training class for jBASE, I was aided by Charles Barouch, Jenna Hernandez and Tyler McDonough in designing a jEDI to access XML files.I want to thank them for their contributions and the brainstorming session. This blossomed into the jEDI attached to this post and may be handy for anyone needing to access XML files from jBASE. When run against a 500,000 record XML file with a size of 94Mb, it can access all the items in the file in just under 2 minutes. Why have to read and decode an XML file that looks like this <CATALOG><PLANT><XMLROW>1</XMLROW><COMMON>Buttercup</COMMON><BOTANICAL>Erythronium americanum</BOTANICAL><ZONE>21</ZONE><LIGHT>Mostly Shady</LIGHT><PRICE>$12.59</PRICE><AVAILABILITY>12,599</AVAILABILITY></PLANT><PLANT><XMLROW>2</XMLROW><COMMON>Greek Valerian&
The Rocket MultiValue team is pleased to announce the availability of the Rocket MV BASIC for Visual Studio Code 1.6.0 extension, now available on the Visual Studio Code Marketplace. Rocket MV BASIC for VS Code (MVVS) allows BASIC developers to edit, compile, and now debug their BASIC applications in one of the most popular development environments, Microsoft Visual Studio Code. The release of MVVS 1.6.0 includes a preview of the Debugging functionality. By detecting and analyzing errors in your BASIC code, the Debugging feature makes it easy to debug and fix BASIC programs. The 1.6.0 Debugging feature is considered an MVP (Minimal Viable Product) and we will continue to enhance and refine it over a series of releases. MVVS version 1.6.0 includes: Debugging (MVP* version) - version 1.6.0 allows debugging of BASIC programs when the extension is connected to a UniVerse server Supported MVP Debugging Operations: Break Point Continue Step-In, Ou
Hey RMV team,Do you have any project to adress d3 editing ?Or do we need to use another vsCode extension to adress it ?ThxManu Fernandes
Had a couple of D3 Linux systems who were having trouble getting host authentication to work on Linux version 8 systems authenticating to Active Directory Original test: Using AD user, got "invalid user or password" loop upon entering "d3" Using local user in /etc/password it worked Findings: By default, AD integrated with PAM uses Windows GPO policies ( like local users, blah blah ) When you SSH and log into Linux, you are being authenticated with a token to AD, the user is run through the PAM SSHD module ( identical to D3 module ) When you enter "d3" at the bash shell to get into D3, it does a query against a different PAM module called d3 ( identical to sshd ). That PAM module ( d3 ) is not authorized to run PAM authentication. Consequently, it cannot query active directory with a token. Solution: Add this line to /etc/sssd/sssd.conf: ad_gpo_map_interactive = +d3 You'll then need to reboot D3 and maybe Linux as well.------------------------------Brian S. CramPrincipal Technical
A common practice in legacy multi-value applications is/was to write controlling records to denote a user being logged in, or running a specific menu option.A problem with that design is if the program doesn't wrap-up normally (either due to a bug or the session was logged off or perhaps dropped into the debugger and the user aborted) the control record is left in place.jabba to the rescue!!A very useful feature of dynamic objects (written in jabba which is an extension to the jBC language) is that if a class has a destructor method, that method will be called when jBASE wraps up the work-space/session.Example:WRAPUP_TEST.b PROGRAM WRAPUP_TEST INCLUDE JWRAPUP_SESSION.h OPEN 'CONTROL' TO F.control ELSE STOP 201,'CONTROL' WRITE TIMEDATE() ON F.control,@LOGNAME LOOP CRT "Waiting to be killed...": INPUT cont,1_ CRT "We weren't killed....don't touch the keyboard" REPEAT The above program will write a timestamp to the file CONTROL for the logged in user name (@LOGNAME). It th
I just took a case with a guy who was using READU and WRITEU to lock and retain a lock on a file. The reads and writes would work for a while, then after a week or so, a group lock would be set that prevented the WRITEU. No apparent reason. Then he remembered that he had a CALLX on the file. Turned out there was a bug in the trigger that was creating an item ID for an audit file. Circumstances sometimes led to the ID being more than 100 bytes long causing the CALLX to fail and strand the group lock. He found and fixed the issue.Thing is, he's lucky that the trigger was failing in a way that caused a lock contention that triggered ( pun intended ) an investigation. If the trigger had failed in some other way that allowed the main process to continue without error, the update to the file would also have failed without overt warning. Yes, there would most likely be something in the ERRORS or RUNTIME-ERRORS files, but nothing that would have sent the process into the debugger or anything e
Is there any update on the release date for Universe 12.2? The last update we had was the end of March, indicating a likely May 2022 release.
All,I recently had to start converting UTF-8 characters to ascii. I have a simple Unix /bin/sh script that does the conversion. It works fine from RHEL 6. When I run a BASIC program with EXECUTE SH -c 'same command' The results are basically correct, but the UTF-8 characters are returned as '?'s.Your thoughts on this would be greatly appreciated. Script:#!/bin/shtemp=$(mktemp)eval "$1 -o $temp"cat $temp | iconv -c -f UTF-8 -t ascii//TRANSLITrm $temp$1 is a curl command to access a web call. The iconv Unix command translates from UTF-8 to ascii. The temp variable is the name of a unique temp file. I create it, use it and remove it.The execute in questions looks like EXECUTE SH -c 'curl command'Curl works, the temp file contains the web call data with the UTF-8 characters in it. From Unix it works correctly, from UniVerse the translation is flawed.Due to the API containing keys and such, I have not included them here, but they don't appears to have much to do with the problem.Jon
Morning All (It's still morning in Africa!),A customer wants to tighten up their firewalls and remove redundant rules.I like the ability to auto activate so would appreciate some education on which ports need to be allowed to facilitate this.Thanks in advance,Tom Power
Is it possible to have the includeFiles act as a hierarchy. For example, "includeMapping": [ { "includeFile":"INCLUDEFILES", "fileName":"INCLUDEFILES_DEV" } { "includeFile":"INCLUDEFILES", "fileName":"INCLUDEFILES_PROD" } ]And in my code I can write: $INCLUDE INCLUDEFILES STDREADERIn the example above MV Basic would look for the "STDREADER" code in the INCLUDEFILES_DEV file first and when its not there it will look in INCLUDEFILES_PROD. This aligns with our source control process (check-out to _DEV, check-in to _PROD) and the way our pre-compiler works.My experiments indicate that MV Basic assumes each object in the includeFiles array has a unique value for the includeFile membe
Is the accuterm documentation available online here in the Rocket site?I am attempting to FTD data into a spreadsheet where a given column is a calculation. Example column a divided by column b placed into column c. I can put the expression into the data field I will download and the expression executes BUT the data filled in the excel sheet is the result. I want the formula to be loaded into that column, not the result. The display should look the same BUT with the expression in the field, where changing column a or b alters column c automatically.Does anyone know how this could be accomplished?------------------------------Kathleen HambrickProgrammer at Colwell------------------------------
Hello,We have a legacy application that is supported by an analyst that will be retiring. We are looking to find a vendor that can help support the application. Some details:Some Details:• Software: Rocket U2 UniVerse • Version is: 11.2.5 in Prime Information format• Emulator: SecureCRT • Operating system: UNIX Solaris 10 (SunOS 5.10)• It is running on virtual Solaris: 64-bit amd64 kernel modulesIf anyone knows of or can recommend any vendors that provide AMS for an application built on Rocket U2 Universe, I would appreciate the information.Thanks,Darcy
A friend of mine got bit by an upgrade from PHP 5 to PHP 7. He was accessing the MVS Toolkit from PHP by creating a URI and retrieving data by passing that URI to file_get_contents then parsing the returned JSON object as follows:$uri = "https://xx.xx.xx.xx:8181/ws/wso?param=whatever";$jsonStr = file_get_contents($uri);Because security has become a lot tighter over the last few years, that code resulted in an SSL failure error. He was able to correct this by adding the following code:$uri = "https://xx.xx.xx.xx:8181/ws/wso?param=whatever"; $arrContextOptions=array("ssl"=>array("verify_peer"=>false,"verify_peer_name"=>false,),); $jsonStr = file_get_contents($uri, false , stream_context_create($arrContextOptions));------------------------------Brian S. CramPrincipal Technical Support EngineerRocket Software------------------------------
If you're using Linux there's a trick you can use to run procs as bash scripts.First we'll use "vi" to create our proc/script:$ vi ~/bin/jqlselIn vi type the following:!!which jpqWhich should result in something like the following (on line 1)/opt/jbase/CurrentVersion/bin/jpqNow prefix with the bash prefix required by typing I#!<escape>resulting in#!/opt/jbase/CurrentVersion/bin/jpqNow we can proceed with our proc as normal#!/opt/jbase/CurrentVersion/bin/jpqPQH<<Enter selection command>>pH<<Enter command>>PNext make it executable $ chmod +x jqlsel And now we can run it like any command: $ jqlsel Enter selection command: SELECT mycust SAMPLE 10 Enter command: SORT mycust BY LASTNAME ------------------------------Peter FalsonRocket Internal - All Brands------------------------------
SUBROUTINE XMLJEDI(parameters, jedi_command, item_id, data_record, defer_commit, error_code)* 04/27/22 by Dan Ell, Tyler McDonaugh, Jenna Hernandez, Charles Barouch *! ********************************************************************** *! Creates an xpath model of all the tags in an XML document *! and treats the XML document like a read-only jBASE file. *! ********************************************************************** *!! Add this to the current directory to create a jEDI file for XML!! ED . SAMPLE.XML! .I JBC__SOB JediInitSUB XMLJEDI filename=/big/tmp/SampleLarge.xml,xmlmap=SAMPLE.MAP,dict=SAMPLE.XML]D! 001 JBC__SOB JediInitSUB XMLJEDI filename=/big/tmp/SampleLarge.xml,xmlmap=SAMPLE.MAP,dict=SAMPLE.XML]D! .FI!! xmlmap is the item ID to XML.MAPS which holds this information!! ED XML.MAPS SAMPLE.MAP! 001 Sample PLANT xml file <-- Description (not used in this program)! 002 PLANT <-- Record tag pre-defined (not in this program), <Record> ... </Record>! 003
A new jEDI that allows you to access the XML file (currently read-only) as if it was a standard jBASE hashed file with the key being the row of the XML file.XMLJEDI is the JEDI program. MAKEXML will generate a sample XML item with however many data items you want. TEXTXML allows you to test for best blocksize for the XML file. With this new JEDI, you can add dict= portion of param and it will create DICT items when the XML is first mapped. You can also specify the blocksize. When run against a 500,000 record XML file with a size of 94Mb, it can LIST the file in 3 minutes and 24 seconds. Here is an example of the jEDI stub for a sample xml file called /big/tmp/SampleLarge.xml : jsh>ED . SAMPLE.XML<Enter>New Record SAMPLE.XML TOP I<Enter> 001+ JBC__SOB JediInitSUB XMLJEDI filename=/big/tmp/SampleLarge.xml,xmlmap=SAMPLE.MAP,dict=SAMPLE.XML]D,blocksize=63488<Enter> 002+<Enter> FI<Enter> After you add the jEDI stub to the current directory, you creat
Hello,We are getting the error show below, when we try to connect to MVSToolkit. It only happens to one of our apps. The problem goes away on its own, if we keep trying to connect for several minutes. Please let me know if you know what may cause this error.Thanks,Chris
I'm working on a script to copy files at the Linux level from one folder to another. The commands are:SH -c"find CIF.IMAGES -type f -exec mv {} /bl1/newfolder \\;"CIF.IMAGES is a folder in my account and I'm trying to move all of the files to the newfolder in /bl1. The issue is that the paragraph interpreter is seeing the "\\" as an unmatched quote and fails, so nothing gets moved.Suggestions?------------------------------Jeff TeterWoodforest National BankThe Woodlands, TX------------------------------
------------------------------Jill OrsiniInside Sales MVRocket Internal - All Brands------------------------------
In jBASE 5.8, an enhancement to the BASIC (aka jBC) compiler has made comparisons against '' (empty string) dramatically faster.Historically it was quicker to compare the LEN() of a variable against 0 to test if a variable was '' (NULL). For example if you're on 5.7 (or earlier) try the sample code. workVar = STR('the quick brown fox jumps over the lazy dog', 10000) startTime = SYSTEM(12) FOR I = 1 TO 10000 IF workVar NE '' THEN END NEXT I CRT 'First FOR loop took: ':SYSTEM(12)-startTime startTime = SYSTEM(12) FOR I = 1 TO 10000 IF LEN(workVar) THEN END NEXT I CRT 'Second FOR loop took: ':SYSTEM(12)-startTime On 5.8 the statement: IF workVAR NE '' THEN now gets compiled to a special function (this is also true for EQ '') that performs the same as IF LEN(workVar) NE 0 THEN so the sample program (above) will produce similar results (depending on system usage).------------------------------Peter FalsonRocket Internal - All Brands------------------------------
Voting for DBTA Readers' Choice Awards is open now through Wednesday, May 11, 2022. DBTA will feature the award winners in a special section of the August edition of DBTA Magazine, and at www.DBTA.com. Rocket Software is proud to have Rocket Software MultiValue Suite (D3, UniVerse, UniData, jBASE and OpenQM) in the "Best MultiValue Database" category. Your organization has invested in your business-critical MultiValue-based applications over the course of years. And ensuring those applications can adapt and grow alongside your organization means more return on those investments for years to come. Rocket Software offers the largest range of modernization solutions for the MultiValue (MV) Application Platform that help you avoid risky, costly replatforming initiatives. Analysts like IDC, Gartner and Forrester agree that modernization strategies continue to move to the top of the list for most CIOs. Let Rocket be the engine in your modernization journey and help you develop and implement
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.