[U2] How to check which sproc is called by user

2013-01-07 Thread Ravindranath Wickramanayake
Hi U2 Guru's

 

Can I tell when a sproc was last executed or who executed it.  If so
how. Some way to get statistics and access logs. Reason we are asking
this is we are having a session hang issue we have tracked it down to a
session user but have no clue which sproc did the call to trouble shoot.

 

Thanks in advance

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Mocking UniSession in .NET

2012-08-15 Thread Ravindranath Wickramanayake
Thanks Brian I will try that out.

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach
Sent: Tuesday, August 14, 2012 3:32 PM
To: U2 Users List
Subject: Re: [U2] Mocking UniSession in .NET

... in fact if you're building, you may be better off just using a
stringbuilder and generating the delimited string. If the UniDynArray is
wrapping a string that might explain why it seems slow. (.net strings
are immutable so changing strings is a bad idea). 

on the server the string manipulations are highly optimised using
various hidden pointers and hints.

Brian

Sent from my iPad

On 14 Aug 2012, at 21:25, Brian Leach  wrote:

> Do you need to send an actual UniDynArray or the underlying data in a
dynamic array format? IIIRC the UniSubroutine arguments are overloaded
to use strings: and a dynamic array (encapsulated in a UniDynArray) is
actually a delimited string. Fields separated by \xFe, values by \xFD,
text encoding is 8 bit ansi so get the TextEncoding from page 1252. 
> 
> Now I dont know what the UniDynArray does internally to manage data 
> but I have found it slow, and often better to go to the underlying 
> string and parse or manipulate it directly e.g. using a 
> List.AddRange( myArray.StringValue.Split('\xFd'));
> 
> AFAIK the only reason the UniDynArray is constructed from the
UniSession is because it needs to get any NLS mappings from the server
(anyone know better?) and certainly the older COM implementation of
UniObjects did not need a session to create a dynamic array, so you
could probably just simulate that and ignore the parenting UniSession.
> 
> 
> oh and be careful about insert, you probably need replace in most
cases. that will replace the content of an existing or non-existing
element.
> 
> B
> Sent from my iPad
> 
> On 14 Aug 2012, at 20:49, "Ravindranath Wickramanayake"
 wrote:
> 
>> Hmm my Business logic sends data to Data Layer then data layer talks 
>> to pick server by using UniObject.NET dll. What I'm trying to unit 
>> test is this DataLayer Calls to pick to check whether it converts 
>> complex objects to UniDynArrays correctly.
>> 
>> So How do you abstract UniSession out? Sproc coming from pick side 
>> (which I have no control over) require me to send UniDynArray.
>> 
>> What I want is to send user data to a UniDynArray. I have already 
>> interfaced UniDynArray insert methods but I can't see how I could 
>> return a UniDynArray without a UniSession. Is there a way you could 
>> fake UniSession for unit testing purposes?
>> 
>> -Original Message-
>> From: u2-users-boun...@listserver.u2ug.org
>> [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian 
>> Leach
>> Sent: Tuesday, August 14, 2012 4:56 AM
>> To: 'U2 Users List'
>> Subject: Re: [U2] Mocking UniSession in .NET
>> 
>> T
>> 
>> I think we're actually talking the same thing: a separation between 
>> the business logic and the client.
>> Mocking the business logic calls so they don't touch the server, and 
>> separately unit testing the server routines so you know they will 
>> work when they will be hit.
>> 
>> And I'm a believer in unit tests, or at least the discipline they 
>> enforce - learned the hard way - and as a platform for integration 
>> testing. Without automated testing I haven't got the resources to do 
>> a full integration  test for every release. Though not necessarily 
>> going as far as TDD yet.
>> 
>> Brian
>> 
>> -Original Message-
>> From: u2-users-boun...@listserver.u2ug.org
>> [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony 
>> Gravagno
>> Sent: 14 August 2012 01:29
>> To: u2-users@listserver.u2ug.org
>> Subject: Re: [U2] Mocking UniSession in .NET
>> 
>>> Brian Leach
>>> would it be better to construct a higher level wrapper for your
>> business
>>> functions and mock those? the UO libraries are quite low level: its
>> a bit
>>> like mocking ado.net rather than your db calls.
>> 
>>> From: Ravindranath
>>> Thanks for the reply. I am trying to do higher level wrappers to
>> hide
>>> those UniObject stuff but the problem is in order to to get
>> UniDynArray it
>>> has to have UniSession. [snip]
>> 
>> 
>> Brian, I was going to suggest the same thing. But this is one of the 
>> differences between unit testing an application and mocking, which 
>> will allow a unit test to run completely in test mode without 
>> actually calling to the server within

Re: [U2] Mocking UniSession in .NET

2012-08-14 Thread Ravindranath Wickramanayake
Hmm my Business logic sends data to Data Layer then data layer talks to
pick server by using UniObject.NET dll. What I'm trying to unit test is
this DataLayer Calls to pick to check whether it converts complex
objects to UniDynArrays correctly.

 So How do you abstract UniSession out? Sproc coming from pick side
(which I have no control over) require me to send UniDynArray. 

What I want is to send user data to a UniDynArray. I have already
interfaced UniDynArray insert methods but I can't see how I could return
a UniDynArray without a UniSession. Is there a way you could fake
UniSession for unit testing purposes?
 
-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach
Sent: Tuesday, August 14, 2012 4:56 AM
To: 'U2 Users List'
Subject: Re: [U2] Mocking UniSession in .NET

T

I think we're actually talking the same thing: a separation between the
business logic and the client.
Mocking the business logic calls so they don't touch the server, and
separately unit testing the server routines so you know they will work
when they will be hit.

And I'm a believer in unit tests, or at least the discipline they
enforce - learned the hard way - and as a platform for integration
testing. Without automated testing I haven't got the resources to do a
full integration  test for every release. Though not necessarily going
as far as TDD yet.

Brian

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno
Sent: 14 August 2012 01:29
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Mocking UniSession in .NET

> Brian Leach
> would it be better to construct a higher level wrapper for your
business
> functions and mock those? the UO libraries are quite low level: its
a bit
> like mocking ado.net rather than your db calls.

> From: Ravindranath
> Thanks for the reply. I am trying to do higher level wrappers to
hide
> those UniObject stuff but the problem is in order to to get
UniDynArray it
> has to have UniSession. [snip]


Brian, I was going to suggest the same thing. But this is one of the
differences between unit testing an application and mocking, which will
allow a unit test to run completely in test mode without actually
calling to the server within the application code. Ravi could abstract
his code out for the test but that very process could be considered an
invalidation of the test.

Despite the latest craze around unit testing and the entire industry
that it's spawned, I still find applications I use to be as crappy as
they've always been, so I'm not as enamored with unit tests or mocking
as many others. When working on a GUI project I try to get the BASIC app
developers to handle everything there while I intentionally remain
ignorant of their inner processes. Once my clients get the hang of this
they really enjoy the process - the BASIC developers regain their sense
of self-confidence as they realize that a GUI doesn't threaten their
jobs. We interface through well-defined BASIC calls. It's here that we
can do a BASIC mockup of the input to their BASIC code. If that works,
and I've done my job, the GUI will work when linked to the back-end.
Similarly, and (Zzz...) here's the point, my GUI-side tests don't
connect into the DBMS, so I don't need to mock that part. I keep that
interface lightweight, use the same component for almost all DBMS
activity, and don't need the overhead of unit tests or mocking for every
new application. Ravi, that might be of some help to you.

Good luck,
T


___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Mocking UniSession in .NET

2012-08-13 Thread Ravindranath Wickramanayake
Thanks for the reply. I am trying to do higher level wrappers to hide
those UniObject stuff but the problem is in order to to get UniDynArray
it has to have UniSession. UniObjects allow me to send UniDynArray to
subroutine. Would you happen to have a sample code where you do
something like that. My code is as follow  my prob is UniDynArray
GetData { get; } line. Code as bellow

#region GetDataByField

string GetDataByField(int field);
string GetDataByField(int field, int value);
string GetDataByField(int field, int value, int subValue);

#endregion

#region Count

int Count(int field);
int Count(int field, int value);
int Count(int field, int value, int subValue);

#endregion

#region Insert

void Insert(int field, string strValue);
void Insert(int field, int value, string strValue);
void Insert(int field, int value, int subValue, string
strValue);

#endregion

#region GetData

UniDynArray GetData { get; }

#endregion



-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach
Sent: Monday, August 13, 2012 3:50 PM
To: U2 Users List
Subject: Re: [U2] Mocking UniSession in .NET

would it be better to construct a higher level wrapper for your business
functions and mock those? the UO libraries are quite low level: its a
bit like mocking ado.net rather than your db calls.  

I expose all the business logic through server side subroutines, all
using standardized calling conventions, then they can easily be
simulated and also I can use server side unit tests.


Sent from my iPad

On 13 Aug 2012, at 19:32, "Ravindranath Wickramanayake"
 wrote:

> Hi
> 
> 
> 
> Does anybody know how to mock UniSession via .NET? or is there a 
> interface for UniSession like IUniSession so it could be easily 
> mockable?
> 
> 
> 
> Your Help is very much appreciated
> 
> 
> 
> Thanks
> 
> Ravi
> 
> ___
> U2-Users mailing list
> U2-Users@listserver.u2ug.org
> http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


[U2] Mocking UniSession in .NET

2012-08-13 Thread Ravindranath Wickramanayake
Hi

 

Does anybody know how to mock UniSession via .NET? or is there a
interface for UniSession like IUniSession so it could be easily
mockable? 

 

Your Help is very much appreciated

 

Thanks

Ravi

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users