Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Jim Idle
I think then that the thing to do is ask Greg Cooper. @Bruce Decker - maybe
you can facilitate this?

As I use OSX, I don’t have jBASE available without some messing around
 Hunt Hint. OSX port would be easy. As would a docket image of jBASE :)

Jim

On Wed, Mar 4, 2020 at 23:05 Igor Osmolovskiy  wrote:

> Hello Jim,
>
> Thanks for your participation in the discussion :)
>
> > Are writing a pure C program and wish to call in to subroutines etc?
> Yes, that's the idea. Actually the final goal is wider, namely to write a
> Python extension in C that would call JBC functions. Basically I managed to
> do it but this excessive session is something would be good to get rid of.
>
> I've applied jbc -S myrtn.b for a simple code already which results in
> producing 2 files: myrtn.c and the myrtn.j, the latter one being included
> into the .c one via #include "myrtn.j".
> But in the .j file already we can see the lines like
> #define DEF_SEL_VAR JLibReturnDefaultSelect(dp) /* Default select
> list for this program */
> #define DEF_FILE_VAR JLibReturnDefaultFile(dp) /* Default file
> descriptor for this program */
>
> i.e. dp is supposed to be initialized already by the moment myrtn is
> called.
>
> I've managed to find the next dp related functions mentioned in some
> libraries
> jbase_getdp() - this works, i.e. initializes dp, but creates a new session
> jbase_getdp_nocreate() - not working if called alone. but it works and
> returns the dp1 value when called after jbase_getdp(), and dp1 = dp in
> this case
> jbase_getdpEX() - not sure what it should do
> jbase_setdpEX() - not sure what it should do
>
>
> Please see the sample piece of code
>
> #include 
> extern "C" DPSTRUCT *jbase_getdp();
>
> ...
>
> PyMODINIT_FUNC
> jbc_oconv(PyObject*, PyObject* _args)
> {
> ...
> DPSTRUCT *dp = jbase_getdp();
> OCONV_B(result, tmp, VarHelper(arg1), VarHelper(arg2));  // this if
> defined in jsystem.h as   #define OCONV_B(Target, ConvReg, Source,
> Conversion) JLibGConvRun(*dp*, ConvReg, Target, Source, Conversion, 1)
> ...
> }
>
>
>
> I've tried to read the jmainfunction.obj  as well where some other jbase
> related functions are mentioned but could not figure out any useful one...
>
> Maybe there is something I am missing or some non-documented function?
>
> Would appreciate any hints! :)
> Thanks
> Igor
>
> среда, 4 марта 2020 г., 8:11:30 UTC+1 пользователь Jim Idle написал:
>>
>> Wow - it has been a long time since that code ;) However, what you ask is
>> possible I believe. It depends on your context. Are writing a pure C
>> program and wish to call in to subroutines etc?
>>
>> Probably the best place to start is to generate the C code for a very
>> small jBC program:
>>
>> lufc.b
>> CRT "Leeds United are Magic!"
>>
>> jbc -S lufc.b
>>
>> Then you will see the startup sequence for a standard executable and can
>> copy the code.
>>
>> However, my memory is vague, but I think that we had a C function you can
>> call to do what you are doing and that will return the dp for reuse. It
>> get's passed to subroutines for instance.
>>
>> Perhaps you can post the code you currently have.
>>
>> Jim
>>
>> On Wed, Mar 4, 2020 at 3:19 AM Igor Osmolovskiy  wrote:
>>
>>> Dear all
>>>
>>> I need the jBase DP (data pointer) to be initialized. I've actually
>>> managed to initialize it by calling the jbase_getdp(). But in both cases
>>> the new child session is created in jshell (and gets removed automatically
>>> after the code has been executed).
>>>
>>> So I am wondering: is there a possibility to retrieve and use the
>>> current session DP somehow? So that no child session would get created
>>>
>>> Any advice would be highly appreciated
>>>
>>> Thanks in advance
>>>
>>>
>>> PS: to the admin, it is actually a jBase related question rather than
>>> TAFC. Thanks
>>>
>>>
>>> Kind regards,
>>> Igor
>>>
>>> --
>>> --
>>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>>
>>> To post, send email to jb...@googlegroups.com
>>> To unsubscribe, send email to jbase-un...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/jBASE?hl=en
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "jBASE" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to jb...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com
>>> 
>>> .
>>
>>
>>> --
> --
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>
> To post, send email to jBASE@googlegroups.com
> To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/jBASE?hl=en
>
> ---
> You received this message because you are 

Re: Getting jBASE phantom processes to restart automatically after reboot (Windows)?

2020-03-04 Thread Jim Idle
This was in fact much of the point. Move away from Pick only.

For Windows, use this:

https://en.m.wikipedia.org/wiki/Windows_Task_Scheduler

And there are a few commercial schedulers that are great. Think different :)

These days, I would not run Windows - AWS Linux is the way to go guys.

jIM

On Wed, Mar 4, 2020 at 23:05 Bruce Decker  wrote:

> Great tip Mark.  And on *nix, Cron is the “standard” way of doing timed
> execution.
>
>
>
> Often, the power of jBASE comes from what it does not *need* to do.
>
>
>
> With our upcoming community-based documentation, handy tips like this will
> nestle right next to the main docs making life easier for Greg and the
> community at large.  It’s gonna be great!
>
> -BD
>
>
>
>
>
> *From:* jbase@googlegroups.com  *On Behalf Of *
> m...@proman.com
> *Sent:* Tuesday, March 3, 2020 4:43 PM
> *To:* jbase@googlegroups.com
> *Subject:* RE: Getting jBASE phantom processes to restart automatically
> after reboot (Windows)?
>
>
>
> You might consider adding your own service for your.exe which would
> execute the PH-START commands
>
>
>
>
> https://support.microsoft.com/en-us/help/137890/how-to-create-a-user-defined-service
>
> The registry settings woud be something like
>
> Application : C:\jBASE\5.5.0\bin\jsh.exe
>
> AppParameters : -Jb -c fullpath\your.exe
>
>
>
> OR
>
>
>
> Adding fullpath\jpq fullpath\proc to the Startup procedure might also work.
>
>
>
>
>
> *From:* jbase@googlegroups.com  *On Behalf Of *Greg
> Iverson
> *Sent:* Tuesday, March 3, 2020 11:58 AM
> *To:* jBASE 
> *Subject:* Getting jBASE phantom processes to restart automatically after
> reboot (Windows)?
>
>
>
> Hi all!
>
>
>
> This is an annoying issue that I thought I'd finally ask about since it's
> not going to fix itself! :)
>
>
>
> On D3 every phantom process I had previously started would start back up
> after a system reboot. I never had to worry about whether or not there was
> a power failure or someone tripped on the power cord.
>
> I have several phantoms whose only purpose is to check and make sure the
> other phantoms are running...but of course THEY don't start either so I
> remain ignorant :)
>
>
>
> With jBASE, not only do I not have the functionality of choosing when
> processes kick off (between certain times and on certain days, etc.), but
> when the PC is restarted, the processes don't start back up automatically.
>
>
>
> I have a proc in the MD that I run manually at TCL (JSH prompt) that does
> all the necessary PH-START commands, but is there any way to get it to run
> after a system reboot (or some other way to kick them off again)?
>
>
>
> Just seems strange that jBASE forgets all about the phantoms and starts
> fresh with each reboot? I guess I've got to stop compiling lists of all the
> things D3 does that jBASE doesn't - HA! :)
>
>
>
> -Greg
>
>
>
> --
> --
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>
> To post, send email to jBASE@googlegroups.com
> To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/jBASE?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jbase+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jbase/21dbde52-866d-48fa-8287-aee125fc8e37%40googlegroups.com
> 
> .
>
> --
> --
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>
> To post, send email to jBASE@googlegroups.com
> To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/jBASE?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jbase+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jbase/008001d5f1b5%248624c930%24926e5b90%24%40proman.com
> 
> .
>
> --
> --
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>
> To post, send email to jBASE@googlegroups.com
> To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/jBASE?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jbase+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> 

Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Marco Manyevere
Hi,

On some earlier release of jBase 5, I once had a need to "divert" a jBC
subroutine call to go via my own jBC subroutine with the same name that
then called the original (for which I didn't have source). I remember
creating a C function to achieve that. The C function was declared like
below. What I learned about the DP is that every subroutine is passed the
DP as the first argument so you do not need to initialise it again - just
pass it on.

I achieved my objective by compiling and cataloging a duplicate routine and
making sure that my duplicate routine was in a search path that was found
first before the existing routine. I would then call dllsym function below
passing it the actual shared library file name that contained the original
routine name (dll_name) and the name of the original subroutine (rtn_name)
and the arguments in VAR*,  (Note that I had typedef int (*fptrXX) for
upto 20 arguments which was more than enough for all the subroutines I
wanted to debug).

dlopen/dlsym system calls were key functions in this piece of code. In my
case, the original jbase session was already started and from there, calls
could be exchanged between jBC and C any number of times by just passing
the DP along.

Hope it helps, Marco.

#include 
#include 
#include 

typedef int (*fptr)(struct jBASEDataAreas *dp, char *);
typedef int (*fptr1)(struct jBASEDataAreas *dp, char *, VAR *);
typedef int (*fptr2)(struct jBASEDataAreas *dp, char *, VAR *, VAR *);
typedef int (*fptr3)(struct jBASEDataAreas *dp, char *, VAR *, VAR *, VAR
*);
typedef int (*fptr4)(struct jBASEDataAreas *dp, char *, VAR *, VAR *, VAR
*, VAR *);

INT32 dllsym(struct jBASEDataAreas *dp, char *dll_name, char *rtn_name,
char *vflags, VAR **arg)
{
   void *handle;
   fptr fun_ptr;

   int numargs = strlen(vflags);

   handle = dlopen(dll_name, RTLD_LOCAL | RTLD_LAZY);
   if (!handle) {
  printf("dlopen('%s') failed!: %s\n ",dll_name, dlerror());
  return 1;
   }

   *(void **)(_ptr) = dlsym(handle, rtn_name);
   if (fun_ptr == NULL) {
  printf("dlsym('%s', '%s') failed!: %s\n", dll_name, rtn_name,
dlerror());
  dlclose(handle);
  return 1;
   }
   switch(numargs) {
   case 0:
  (*fun_ptr)(dp, vflags);
  break;
   case 1:
  (*(fptr1)fun_ptr)(dp, vflags, arg[0]);
  break;
   case 2:
  (*(fptr2)fun_ptr)(dp, vflags, arg[0], arg[1]);
  break;
   case 3:
  (*(fptr3)fun_ptr)(dp, vflags, arg[0], arg[1], arg[2]);
  break;
   case 4:
  (*(fptr4)fun_ptr)(dp, vflags, arg[0], arg[1], arg[2], arg[3]);
  break;
   }
   dlclose(handle);
   return 0;
}


On Wed, 4 Mar 2020 at 17:05, Igor Osmolovskiy  wrote:

> Hello Jim,
>
> Thanks for your participation in the discussion :)
>
> > Are writing a pure C program and wish to call in to subroutines etc?
> Yes, that's the idea. Actually the final goal is wider, namely to write a
> Python extension in C that would call JBC functions. Basically I managed to
> do it but this excessive session is something would be good to get rid of.
>
> I've applied jbc -S myrtn.b for a simple code already which results in
> producing 2 files: myrtn.c and the myrtn.j, the latter one being included
> into the .c one via #include "myrtn.j".
> But in the .j file already we can see the lines like
> #define DEF_SEL_VAR JLibReturnDefaultSelect(dp) /* Default select
> list for this program */
> #define DEF_FILE_VAR JLibReturnDefaultFile(dp) /* Default file
> descriptor for this program */
>
> i.e. dp is supposed to be initialized already by the moment myrtn is
> called.
>
> I've managed to find the next dp related functions mentioned in some
> libraries
> jbase_getdp() - this works, i.e. initializes dp, but creates a new session
> jbase_getdp_nocreate() - not working if called alone. but it works and
> returns the dp1 value when called after jbase_getdp(), and dp1 = dp in
> this case
> jbase_getdpEX() - not sure what it should do
> jbase_setdpEX() - not sure what it should do
>
>
> Please see the sample piece of code
>
> #include 
> extern "C" DPSTRUCT *jbase_getdp();
>
> ...
>
> PyMODINIT_FUNC
> jbc_oconv(PyObject*, PyObject* _args)
> {
> ...
> DPSTRUCT *dp = jbase_getdp();
> OCONV_B(result, tmp, VarHelper(arg1), VarHelper(arg2));  // this if
> defined in jsystem.h as   #define OCONV_B(Target, ConvReg, Source,
> Conversion) JLibGConvRun(*dp*, ConvReg, Target, Source, Conversion, 1)
> ...
> }
>
>
>
> I've tried to read the jmainfunction.obj  as well where some other jbase
> related functions are mentioned but could not figure out any useful one...
>
> Maybe there is something I am missing or some non-documented function?
>
> Would appreciate any hints! :)
> Thanks
> Igor
>
> среда, 4 марта 2020 г., 8:11:30 UTC+1 пользователь Jim Idle написал:
>>
>> Wow - it has been a long time since that code ;) However, what you ask is
>> possible I believe. It depends on your context. Are writing a pure C
>> program and wish to call in to subroutines etc?
>>
>> Probably the best 

Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Quay Tar
Haven't found my "working" example yet (might've been on a docker I blew
away). I did find some WIP code but some of the includes it uses are not
distributed.

Maybe this will help you get further until I find something concrete:

#include "Python.h"
#include 

int ParseArguments(char* arr[],Py_ssize_t size, PyObject *args) {
/* Get arbitrary number of strings from Py_Tuple */
Py_ssize_t i;
PyObject *temp_p, * pyStr;

temp_p = PyTuple_GetItem(args,i);
if(temp_p == NULL) {return 0;}
char *ptr = PyUnicode_AsUTF8AndSize(temp_p, );
arr[i] = strdup(ptr);
}
return 1;
}

static PyObject * jbasepy_callsub(PyObject *self, PyObject *args)
{
struct jBASEDataAreas *dp;

dp = jbase_getdpEX(NULL,NULL,1,NULL);
if (dp != NULL)
{
char * subroutineName;
Py_ssize_t TupleSize = PyTuple_Size(args);
char ** all_args = malloc(TupleSize * sizeof(char*));
PyObject * list_out;
if (ParseArguments(all_args, TupleSize, args))
{
subroutineName = all_args[0];
int (*subptr)() = JediObjectFindFunction(dp,
subroutineName, 2);
if (subptr != NULL)
{
int i;
char V[256];
memset (V, 'V', TupleSize-1);
V[TupleSize-1] = '\0';  /* null terminate.
*/
VAR *varArg, **varArgs =
malloc((TupleSize-1) * sizeof(VAR*));
for(i = 1; i < TupleSize; ++i)
{
varArgs[i-1] = malloc(sizeof(VAR));
varArg = varArgs[i-1];
VAR_INITIALISE_VB(varArg);

STORE_VBS(varArg,(STRING*)all_args[i]);
}
list_out =
PyUnicode_FromString((char*)CONV_SFB(varArgs[0]));
for(i = 1; i < TupleSize; ++i)
{
VAR * varArg = varArgs[i-1];
VAR_RELEASE_VB(varArg);
free(varArgs[i-1]);
free(all_args[i]);
}
free(all_args[0]);
char V[256];
memset (V, 'V', TupleSize-1);
V[TupleSize-1] = '\0';  /* null terminate.
*/
VAR *varArg, **varArgs =
malloc((TupleSize-1) * sizeof(VAR*));
for(i = 1; i < TupleSize; ++i)
{
varArgs[i-1] = malloc(sizeof(VAR));
varArg = varArgs[i-1];
VAR_INITIALISE_VB(varArg);

STORE_VBS(varArg,(STRING*)all_args[i]);
}
subptr(dp, V, varArgs[0], varArgs[1],
varArgs[2], varArgs[3], varArgs[4], varArg
s[5], varArgs[6], varArgs[7], varArgs[8], varArgs[9]);
list_out =
PyUnicode_FromString((char*)CONV_SFB(varArgs[0]));
for(i = 1; i < TupleSize; ++i)
{
VAR * varArg = varArgs[i-1];
VAR_RELEASE_VB(varArg);
free(varArgs[i-1]);
free(all_args[i]);
}
free(all_args[0]);
free(all_args);
free(varArgs);
return list_out;
}
else
{
return PyUnicode_FromString("Subroutine not
found");
}
}
return PyUnicode_FromString("Error parsing arguments");
}
return PyUnicode_FromString("Failed to initialise jBASE");
}

static PyMethodDef jbasepy_methods[] = {
{"callsub", (PyCFunction)jbasepy_callsub, METH_VARARGS,
PyDoc_STR("call jBASE subroutine")},

On Wed, Mar 4, 2020 at 12:08 PM Peter Falson  wrote:

> What version of jBASE do you have?
>
> Sent from my iPhone
>
> On Mar 4, 2020, at 10:55 AM, Igor Osmolovskiy  wrote:
>
> 
> Thanks Peter, would be really helpful!
>
> I've tried two ways
> 1. ctypes library. I managed to call a JBC function but it requires quite
> a lot work as the explicit variable types are required in this case. So 

Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Peter Falson
What version of jBASE do you have?

Sent from my iPhone

> On Mar 4, 2020, at 10:55 AM, Igor Osmolovskiy  wrote:
> 
> 
> Thanks Peter, would be really helpful!
> 
> I've tried two ways
> 1. ctypes library. I managed to call a JBC function but it requires quite a 
> lot work as the explicit variable types are required in this case. So all the 
> transformations from PythonObj to a C type is required for each argument. 
> Also in many cases polymorphismе would be required as JBC arguments often 
> assume different types.
> 2. building a python library via distutils and working with PythonObj only. 
> As I've mentioned already this works but was not able to get rid of the 
> additional session being created at the step of "import lib" in python code.
> 
> среда, 4 марта 2020 г., 16:11:12 UTC+1 пользователь pfalson написал:
>> 
>> We have some examples of python calling a subroutine and vice versa. I will 
>> dig around. 
>> 
>> Sent from my iPhone
>> 
 On Mar 4, 2020, at 7:05 AM, Igor Osmolovskiy  wrote:
 
>>> 
>>> Hello
>>> pls see my response to Jim with the code sample
>>> 
>>> вторник, 3 марта 2020 г., 21:06:27 UTC+1 пользователь pfalson написал:
 
 Can you post some code?
 
 Sent from my iPhone
 
>> On Mar 3, 2020, at 11:19 AM, Igor Osmolovskiy  wrote:
>> 
> 
> Dear all
> 
> I need the jBase DP (data pointer) to be initialized. I've actually 
> managed to initialize it by calling the jbase_getdp(). But in both cases 
> the new child session is created in jshell (and gets removed 
> automatically after the code has been executed).
> 
> So I am wondering: is there a possibility to retrieve and use the current 
> session DP somehow? So that no child session would get created
> 
> Any advice would be highly appreciated
> 
> Thanks in advance
> 
> 
> PS: to the admin, it is actually a jBase related question rather than 
> TAFC. Thanks
> 
> 
> Kind regards,
> Igor
> -- 
> -- 
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>  
> To post, send email to jb...@googlegroups.com
> To unsubscribe, send email to jbase-un...@googlegroups.com
> For more options, visit this group at 
> http://groups.google.com/group/jBASE?hl=en
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jb...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com.
>>> 
>>> -- 
>>> -- 
>>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>>  
>>> To post, send email to jb...@googlegroups.com
>>> To unsubscribe, send email to jbase-un...@googlegroups.com
>>> For more options, visit this group at 
>>> http://groups.google.com/group/jBASE?hl=en
>>> 
>>> --- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "jBASE" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to jb...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/jbase/5c46377f-4c68-4f50-a5fb-9d1d8164232b%40googlegroups.com.
> 
> -- 
> -- 
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>  
> To post, send email to jBASE@googlegroups.com
> To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
> For more options, visit this group at 
> http://groups.google.com/group/jBASE?hl=en
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jbase+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jbase/8ed5e66b-8076-495b-8b66-c7db7d4e8629%40googlegroups.com.

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to jBASE@googlegroups.com
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/F16FECD2-1575-4ED5-B958-72A8ADB411CC%40gmail.com.


Re: Getting jBASE phantom processes to restart automatically after reboot (Windows)?

2020-03-04 Thread Greg Iverson
Thanks for the info!

I decided to go the STARTUP folder route...

I created a DOS batch file called *phstartup.bat* with this in it 
referencing my MD proc *phstart*:

*c:\jbase\CurrentVersion\bin\jpq.exe d:\ibs\freespirit\md]d\phstart*

I then created a shortcut to this batch file in the special/hidden Windows 
Startup dir and it now appears under the Startup tab in Task Manager so I 
should be good to go!
 
We'll see what happens after our next reboot :)

Thanks again!

-Greg
On Tuesday, March 3, 2020 at 5:43:27 PM UTC-6, ma...@proman.com wrote:
>
> You might consider adding your own service for your.exe which would 
> execute the PH-START commands
>
>  
>
>
> https://support.microsoft.com/en-us/help/137890/how-to-create-a-user-defined-service
>
> The registry settings woud be something like
>
> Application : C:\jBASE\5.5.0\bin\jsh.exe 
>
> AppParameters : -Jb -c fullpath\your.exe
>
>  
>
> OR
>
>  
>
> Adding fullpath\jpq fullpath\proc to the Startup procedure might also work.
>
>  
>
>  
>
> *From:* jb...@googlegroups.com   > *On Behalf Of *Greg Iverson
> *Sent:* Tuesday, March 3, 2020 11:58 AM
> *To:* jBASE >
> *Subject:* Getting jBASE phantom processes to restart automatically after 
> reboot (Windows)?
>
>  
>
> Hi all!
>
>  
>
> This is an annoying issue that I thought I'd finally ask about since it's 
> not going to fix itself! :)
>
>  
>
> On D3 every phantom process I had previously started would start back up 
> after a system reboot. I never had to worry about whether or not there was 
> a power failure or someone tripped on the power cord.
>
> I have several phantoms whose only purpose is to check and make sure the 
> other phantoms are running...but of course THEY don't start either so I 
> remain ignorant :)
>
>  
>
> With jBASE, not only do I not have the functionality of choosing when 
> processes kick off (between certain times and on certain days, etc.), but 
> when the PC is restarted, the processes don't start back up automatically.
>
>  
>
> I have a proc in the MD that I run manually at TCL (JSH prompt) that does 
> all the necessary PH-START commands, but is there any way to get it to run 
> after a system reboot (or some other way to kick them off again)?
>
>  
>
> Just seems strange that jBASE forgets all about the phantoms and starts 
> fresh with each reboot? I guess I've got to stop compiling lists of all the 
> things D3 does that jBASE doesn't - HA! :)
>
>  
>
> -Greg
>
>  
>
> -- 
> -- 
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>  
> To post, send email to jb...@googlegroups.com 
> To unsubscribe, send email to jbase-un...@googlegroups.com 
> For more options, visit this group at 
> http://groups.google.com/group/jBASE?hl=en
>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jb...@googlegroups.com .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jbase/21dbde52-866d-48fa-8287-aee125fc8e37%40googlegroups.com
>  
> 
> .
>

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to jBASE@googlegroups.com
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/b559dc1e-6154-4a30-b510-4c0b329edd2c%40googlegroups.com.


Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Igor Osmolovskiy
Thanks Peter, would be really helpful!

I've tried two ways
1. ctypes library. I managed to call a JBC function but it requires quite a 
lot work as the explicit variable types are required in this case. So all 
the transformations from PythonObj to a C type is required for each 
argument. Also in many cases polymorphismе would be required as JBC 
arguments often assume different types.
2. building a python library via distutils and working with PythonObj only. 
As I've mentioned already this works but was not able to get rid of the 
additional session being created at the step of "import lib" in python code.

среда, 4 марта 2020 г., 16:11:12 UTC+1 пользователь pfalson написал:
>
> We have some examples of python calling a subroutine and vice versa. I 
> will dig around. 
>
> Sent from my iPhone
>
> On Mar 4, 2020, at 7:05 AM, Igor Osmolovskiy  > wrote:
>
> 
> Hello
> pls see my response to Jim with the code sample
>
> вторник, 3 марта 2020 г., 21:06:27 UTC+1 пользователь pfalson написал:
>>
>> Can you post some code?
>>
>> Sent from my iPhone
>>
>> On Mar 3, 2020, at 11:19 AM, Igor Osmolovskiy  wrote:
>>
>> 
>> Dear all
>>
>> I need the jBase DP (data pointer) to be initialized. I've actually 
>> managed to initialize it by calling the jbase_getdp(). But in both cases 
>> the new child session is created in jshell (and gets removed automatically 
>> after the code has been executed).
>>
>> So I am wondering: is there a possibility to retrieve and use the current 
>> session DP somehow? So that no child session would get created
>>
>> Any advice would be highly appreciated
>>
>> Thanks in advance
>>
>>
>> PS: to the admin, it is actually a jBase related question rather than 
>> TAFC. Thanks
>>
>>
>> Kind regards,
>> Igor
>>
>> -- 
>> -- 
>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>  
>> To post, send email to jb...@googlegroups.com
>> To unsubscribe, send email to jbase-un...@googlegroups.com
>> For more options, visit this group at 
>> http://groups.google.com/group/jBASE?hl=en
>>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "jBASE" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to jb...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com
>>  
>> 
>> .
>>
>> -- 
> -- 
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>  
> To post, send email to jb...@googlegroups.com 
> To unsubscribe, send email to jbase-un...@googlegroups.com 
> For more options, visit this group at 
> http://groups.google.com/group/jBASE?hl=en
>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jb...@googlegroups.com .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jbase/5c46377f-4c68-4f50-a5fb-9d1d8164232b%40googlegroups.com
>  
> 
> .
>
>

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to jBASE@googlegroups.com
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/8ed5e66b-8076-495b-8b66-c7db7d4e8629%40googlegroups.com.


Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Peter Falson
We have some examples of python calling a subroutine and vice versa. I will dig 
around. 

Sent from my iPhone

> On Mar 4, 2020, at 7:05 AM, Igor Osmolovskiy  wrote:
> 
> 
> Hello
> pls see my response to Jim with the code sample
> 
> вторник, 3 марта 2020 г., 21:06:27 UTC+1 пользователь pfalson написал:
>> 
>> Can you post some code?
>> 
>> Sent from my iPhone
>> 
 On Mar 3, 2020, at 11:19 AM, Igor Osmolovskiy  wrote:
 
>>> 
>>> Dear all
>>> 
>>> I need the jBase DP (data pointer) to be initialized. I've actually managed 
>>> to initialize it by calling the jbase_getdp(). But in both cases the new 
>>> child session is created in jshell (and gets removed automatically after 
>>> the code has been executed).
>>> 
>>> So I am wondering: is there a possibility to retrieve and use the current 
>>> session DP somehow? So that no child session would get created
>>> 
>>> Any advice would be highly appreciated
>>> 
>>> Thanks in advance
>>> 
>>> 
>>> PS: to the admin, it is actually a jBase related question rather than TAFC. 
>>> Thanks
>>> 
>>> 
>>> Kind regards,
>>> Igor
>>> -- 
>>> -- 
>>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>>  
>>> To post, send email to jb...@googlegroups.com
>>> To unsubscribe, send email to jbase-un...@googlegroups.com
>>> For more options, visit this group at 
>>> http://groups.google.com/group/jBASE?hl=en
>>> 
>>> --- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "jBASE" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to jb...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com.
> 
> -- 
> -- 
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>  
> To post, send email to jBASE@googlegroups.com
> To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
> For more options, visit this group at 
> http://groups.google.com/group/jBASE?hl=en
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jbase+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jbase/5c46377f-4c68-4f50-a5fb-9d1d8164232b%40googlegroups.com.

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to jBASE@googlegroups.com
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/E058F46A-17E6-4F97-9A47-3974BBC1EF1D%40gmail.com.


Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Igor Osmolovskiy
Hello
pls see my response to Jim with the code sample

вторник, 3 марта 2020 г., 21:06:27 UTC+1 пользователь pfalson написал:
>
> Can you post some code?
>
> Sent from my iPhone
>
> On Mar 3, 2020, at 11:19 AM, Igor Osmolovskiy  > wrote:
>
> 
> Dear all
>
> I need the jBase DP (data pointer) to be initialized. I've actually 
> managed to initialize it by calling the jbase_getdp(). But in both cases 
> the new child session is created in jshell (and gets removed automatically 
> after the code has been executed).
>
> So I am wondering: is there a possibility to retrieve and use the current 
> session DP somehow? So that no child session would get created
>
> Any advice would be highly appreciated
>
> Thanks in advance
>
>
> PS: to the admin, it is actually a jBase related question rather than 
> TAFC. Thanks
>
>
> Kind regards,
> Igor
>
> -- 
> -- 
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>  
> To post, send email to jb...@googlegroups.com 
> To unsubscribe, send email to jbase-un...@googlegroups.com 
> For more options, visit this group at 
> http://groups.google.com/group/jBASE?hl=en
>
> --- 
> You received this message because you are subscribed to the Google Groups 
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jb...@googlegroups.com .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com
>  
> 
> .
>
>

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to jBASE@googlegroups.com
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/5c46377f-4c68-4f50-a5fb-9d1d8164232b%40googlegroups.com.


Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Igor Osmolovskiy
I've simplified the code a bit in my previous reply to give an idea.
Actually dp is defined as a static variable in a separate class and its 
value is returned by a dedicated class function.

среда, 4 марта 2020 г., 8:11:30 UTC+1 пользователь Jim Idle написал:
>
> Wow - it has been a long time since that code ;) However, what you ask is 
> possible I believe. It depends on your context. Are writing a pure C 
> program and wish to call in to subroutines etc? 
>
> Probably the best place to start is to generate the C code for a very 
> small jBC program:
>
> lufc.b
> CRT "Leeds United are Magic!"
>
> jbc -S lufc.b
>
> Then you will see the startup sequence for a standard executable and can 
> copy the code. 
>
> However, my memory is vague, but I think that we had a C function you can 
> call to do what you are doing and that will return the dp for reuse. It 
> get's passed to subroutines for instance. 
>
> Perhaps you can post the code you currently have.
>
> Jim
>
> On Wed, Mar 4, 2020 at 3:19 AM Igor Osmolovskiy  > wrote:
>
>> Dear all
>>
>> I need the jBase DP (data pointer) to be initialized. I've actually 
>> managed to initialize it by calling the jbase_getdp(). But in both cases 
>> the new child session is created in jshell (and gets removed automatically 
>> after the code has been executed).
>>
>> So I am wondering: is there a possibility to retrieve and use the current 
>> session DP somehow? So that no child session would get created
>>
>> Any advice would be highly appreciated
>>
>> Thanks in advance
>>
>>
>> PS: to the admin, it is actually a jBase related question rather than 
>> TAFC. Thanks
>>
>>
>> Kind regards,
>> Igor
>>
>> -- 
>> -- 
>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>  
>> To post, send email to jb...@googlegroups.com 
>> To unsubscribe, send email to jbase-un...@googlegroups.com 
>> For more options, visit this group at 
>> http://groups.google.com/group/jBASE?hl=en
>>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "jBASE" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to jb...@googlegroups.com .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com
>>  
>> 
>> .
>>
>

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to jBASE@googlegroups.com
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/010e8e45-627a-43a8-b48b-7582562a8116%40googlegroups.com.


Re: Getting the jBase DP (data pointer) of the current session when using pure C

2020-03-04 Thread Igor Osmolovskiy
Hello Jim,

Thanks for your participation in the discussion :)

> Are writing a pure C program and wish to call in to subroutines etc? 
Yes, that's the idea. Actually the final goal is wider, namely to write a 
Python extension in C that would call JBC functions. Basically I managed to 
do it but this excessive session is something would be good to get rid of.

I've applied jbc -S myrtn.b for a simple code already which results in 
producing 2 files: myrtn.c and the myrtn.j, the latter one being included 
into the .c one via #include "myrtn.j". 
But in the .j file already we can see the lines like
#define DEF_SEL_VAR JLibReturnDefaultSelect(dp) /* Default select list 
for this program */
#define DEF_FILE_VAR JLibReturnDefaultFile(dp) /* Default file 
descriptor for this program */

i.e. dp is supposed to be initialized already by the moment myrtn is called.

I've managed to find the next dp related functions mentioned in some 
libraries
jbase_getdp() - this works, i.e. initializes dp, but creates a new session
jbase_getdp_nocreate() - not working if called alone. but it works and 
returns the dp1 value when called after jbase_getdp(), and dp1 = dp in this 
case
jbase_getdpEX() - not sure what it should do
jbase_setdpEX() - not sure what it should do   


Please see the sample piece of code

#include 
extern "C" DPSTRUCT *jbase_getdp();

...

PyMODINIT_FUNC
jbc_oconv(PyObject*, PyObject* _args)
{
...
DPSTRUCT *dp = jbase_getdp();
OCONV_B(result, tmp, VarHelper(arg1), VarHelper(arg2));  // this if 
defined in jsystem.h as   #define OCONV_B(Target, ConvReg, Source, 
Conversion) JLibGConvRun(*dp*, ConvReg, Target, Source, Conversion, 1)
...
}



I've tried to read the jmainfunction.obj  as well where some other jbase 
related functions are mentioned but could not figure out any useful one...

Maybe there is something I am missing or some non-documented function?

Would appreciate any hints! :)
Thanks
Igor

среда, 4 марта 2020 г., 8:11:30 UTC+1 пользователь Jim Idle написал:
>
> Wow - it has been a long time since that code ;) However, what you ask is 
> possible I believe. It depends on your context. Are writing a pure C 
> program and wish to call in to subroutines etc? 
>
> Probably the best place to start is to generate the C code for a very 
> small jBC program:
>
> lufc.b
> CRT "Leeds United are Magic!"
>
> jbc -S lufc.b
>
> Then you will see the startup sequence for a standard executable and can 
> copy the code. 
>
> However, my memory is vague, but I think that we had a C function you can 
> call to do what you are doing and that will return the dp for reuse. It 
> get's passed to subroutines for instance. 
>
> Perhaps you can post the code you currently have.
>
> Jim
>
> On Wed, Mar 4, 2020 at 3:19 AM Igor Osmolovskiy  > wrote:
>
>> Dear all
>>
>> I need the jBase DP (data pointer) to be initialized. I've actually 
>> managed to initialize it by calling the jbase_getdp(). But in both cases 
>> the new child session is created in jshell (and gets removed automatically 
>> after the code has been executed).
>>
>> So I am wondering: is there a possibility to retrieve and use the current 
>> session DP somehow? So that no child session would get created
>>
>> Any advice would be highly appreciated
>>
>> Thanks in advance
>>
>>
>> PS: to the admin, it is actually a jBase related question rather than 
>> TAFC. Thanks
>>
>>
>> Kind regards,
>> Igor
>>
>> -- 
>> -- 
>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>  
>> To post, send email to jb...@googlegroups.com 
>> To unsubscribe, send email to jbase-un...@googlegroups.com 
>> For more options, visit this group at 
>> http://groups.google.com/group/jBASE?hl=en
>>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "jBASE" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to jb...@googlegroups.com .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com
>>  
>> 
>> .
>>
>

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to jBASE@googlegroups.com
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/c010b5b5-199a-42b8-a7fa-2b351052c29f%40googlegroups.com.


RE: Getting jBASE phantom processes to restart automatically after reboot (Windows)?

2020-03-04 Thread Bruce Decker
Great tip Mark.  And on *nix, Cron is the “standard” way of doing timed 
execution.

 

Often, the power of jBASE comes from what it does not need to do.  

 

With our upcoming community-based documentation, handy tips like this will 
nestle right next to the main docs making life easier for Greg and the 
community at large.  It’s gonna be great!

-BD

 

 

From: jbase@googlegroups.com  On Behalf Of 
m...@proman.com
Sent: Tuesday, March 3, 2020 4:43 PM
To: jbase@googlegroups.com
Subject: RE: Getting jBASE phantom processes to restart automatically after 
reboot (Windows)?

 

You might consider adding your own service for your.exe which would execute the 
PH-START commands

 

https://support.microsoft.com/en-us/help/137890/how-to-create-a-user-defined-service

The registry settings woud be something like

Application : C:\jBASE\5.5.0\bin\jsh.exe 

AppParameters : -Jb -c fullpath\your.exe

 

OR

 

Adding fullpath\jpq fullpath\proc to the Startup procedure might also work.

 

 

From: jbase@googlegroups.com   
mailto:jbase@googlegroups.com> > On Behalf Of Greg 
Iverson
Sent: Tuesday, March 3, 2020 11:58 AM
To: jBASE mailto:jbase@googlegroups.com> >
Subject: Getting jBASE phantom processes to restart automatically after reboot 
(Windows)?

 

Hi all!

 

This is an annoying issue that I thought I'd finally ask about since it's not 
going to fix itself! :)

 

On D3 every phantom process I had previously started would start back up after 
a system reboot. I never had to worry about whether or not there was a power 
failure or someone tripped on the power cord.

I have several phantoms whose only purpose is to check and make sure the other 
phantoms are running...but of course THEY don't start either so I remain 
ignorant :)

 

With jBASE, not only do I not have the functionality of choosing when processes 
kick off (between certain times and on certain days, etc.), but when the PC is 
restarted, the processes don't start back up automatically.

 

I have a proc in the MD that I run manually at TCL (JSH prompt) that does all 
the necessary PH-START commands, but is there any way to get it to run after a 
system reboot (or some other way to kick them off again)?

 

Just seems strange that jBASE forgets all about the phantoms and starts fresh 
with each reboot? I guess I've got to stop compiling lists of all the things D3 
does that jBASE doesn't - HA! :)

 

-Greg

 

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.
 
To post, send email to jBASE@googlegroups.com  
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com 
 
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com 
 .
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/21dbde52-866d-48fa-8287-aee125fc8e37%40googlegroups.com
 

 .

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.
 
To post, send email to jBASE@googlegroups.com  
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com 
 
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com 
 .
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/008001d5f1b5%248624c930%24926e5b90%24%40proman.com
 

 .

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to jBASE@googlegroups.com
To unsubscribe, send email to jbase-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jbase+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/000701d5f1b7%2471202960%2453607c20%24%40bluepinc.com.