Client variables - quick confirmation

Can someone confirm something with client variables...
1. <cfparam name=client.colour value="blue"> in
application.cfm
2. On a web page <cfset client.colour="red"> and the
same page confirms this when I cfoutput the value
3 If I check that value on yet another page, it should be
red, shouldn't it ? But, instead its blue
I'm having a major problem with cfclientstore=myDSN where it
points to an Access2007 database via an ODBC socket connection.

sorry about that, my application.cfm does actually use the
correct format
<cfparam name="client.colour" default="blue">
I'm still getting the problem - does anyone else use MS
Access 2007 ? When I look at the database it's storing "blue" but
when I'm changing the value in another page with <cfset
client.colour="red"> its not storing this change in the access
database
I've tied upgrading CF from 8.0 to 8.01 with still no joy
I read Adobe's advice on a lack of Access 2007 driver, and
used the ODBC socket instead but still no joy
Is there anything in my cfapplication that could be messing
around ?
<cfapplication
name="Catalogue"
clientmanagement="Yes"
sessionmanagement="Yes"
setclientcookies="Yes"
sessiontimeout="#CreateTimeSpan(0, 0, 360, 0)#"
applicationtimeout="#CreateTimeSpan(0, 0, 360, 0)#"
clientstorage="cfclientstore"
loginstorage="session">

Similar Messages

  • Client variable storage setting

    Here is a little question hope someone can shine some light
    on it.
    Right now I am using the database as the client variable
    storage in CF (with options of Purge data for 1 day and Disable
    global client variable updates ). But it gives the database server
    a really heavy load (50-90% CPU usage average) and I believe this
    is the bottleneck of the time it takes CF serving the pages. I was
    wondering that is this good idea to put the client variable storage
    back to the Registry or cookie (for a quick fix until we upgrade
    the servers in 4 weeks)? We have average of 46000 page view/day and
    9000 visits/day.
    CFMX 6.11 apply the Hot fix for client variables already
    Win2003
    P4 with 2gb ram
    Thanks

    It is a bottleneck. But on 46k pages views with that high of
    a CPU load, you must really have a very undersized db server. We're
    doing 3 million page views/day and about 65% of those use client
    variables and it doesn't even phase our db server.
    Putting them into a cookie shoudl work just fine. I wouldn't
    use the registry setting. It'll make a mess of your registry.
    You should consider session variables where possible. Those
    stay in server memory.

  • Client variables not working in Apache and CF8

    I have Apache and CF8 set up with multiple virtual hosts
    locally for development(win xp pro, apache 2.2.4)
    Client variables are not working. I can log into CF
    administrator fine(not sure if authentication uses client variables
    or not). Any site that I work on that uses client variables behaves
    as if the variable is not defined after setting it then going to
    another page that checks for its existence. I have verified that
    client variables are set up in cf administrator.
    Thanks for any help

    Thanks a lot. I understood the mistake. Pls do not spend time on this.
    Thanks,
    Swarna

  • Client variables storage in production environment?

    Right now we are using Registry to store client variables in production environment, will changing it to Database increase the performance? or  what i heard from my colleague is that  In production environment , using Database for client storage is not advisable! how true is his statement.

    His statement is completely wrong.  The docs talk about this here: http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0c35c -7fd5.html
    Specifically, read this paragraph from that reference:
    Choosing a client variable storage method
    By default, ColdFusion stores client variables in the Registry. In most cases, however, it is more appropriate to store the information as client cookies or in a SQL database.
    The ColdFusion Administrator Client Variables page controls the default client variable location. You can override the default location by specifying a This.clientStorage value in Application.cfc or by setting the clientStorage attribute in thecfapplication tag.
    You can specify the following values for the client storage method:
    Registry (default). Client variables are stored under the key HKEY_LOCAL_MACHINE\ SOFTWARE\Macromedia\ColdFusion\CurrentVersion\Clients.
    Name of a data source configured in ColdFusion Administrator
    Cookie
    Generally, it is most efficient to store client variables in a database. Although the Registry option is the default, the Registry has significant limitations for client data storage. The Registry cannot be used in clustered systems and its use for client variables on UNIX is not supported in ColdFusion.

  • Coldfusion session/client variables?

    We have multiple users using VPN to get to our intranet.  When the second user gets on they get the first person's session/client variables?
    I have tried looking for the session/client variables and where they are stored but I can't seem to find them.  I have tried searching out the cookies.
    I would appreciate any help.

    There are not too many people on this forum that have dabbled with ColdFusion. I used to, but that was more than one decade ago.
    Your best bet on getting assistance with your problem, is to go to the ColdFusion forum.

  • LVISIT usage in Client Variables

    I have a need to track the last visit of a user on my site.
    After some searching it appears that the LVISIT column of the
    CGLOBAL table in the client variables database should hold the data
    that I need. Unfortunately this column is null on every record.
    In CF Administrator the global client variable updates are
    enabled.
    Why is this not getting updated?
    Version Info:
    Server Product ColdFusion MX
    Version 7,0,2,142559
    Edition Standard
    Operating System Windows 2003
    OS Version 5.2

    Hi,
    If you are using DB user you have to connect to the disocverer using your connect window without checking the "oracle application user" at the bottom. for example apps/[email protected] out the TNS name for the DB user is correct or not.
    If your using an application user then first you have to go to discoverer administartor and go to tools/options and go to connection and check connect to both standard and application EUL's and give the gateway user as APPLSYSPUB/PUB and foundation name as APPS.
    If your connecting to application user,the TNS name should be set in oracle/BI tools home/network/admin and set the TNS name.
    Hope this helps you.
    Best Wishes,
    Kranthi.

  • Client Variable Purge

    I am at my wits end trying to fix what I think is a client
    variable problem. I am currently running CFMX 6.1 + updaters on a
    Windows 2003 R2 SP1standard edition server with IIS 6.0. Since
    implementing with this server (01/2007), we have installed all the
    necessary Windows patches for security every month. I have
    installed hot fixes for client variables (TN 19590) and a few
    others for COM and cfforms issues. I have experienced CF 'hanging';
    not allowing anyone into the application. I shut down the CF MX
    Application service, the CF MX ADBC agent, and try to shut the CF
    MX ODBC server, but it remains in a 'stopping' state, with a reboot
    the only cure.
    While trying to troubleshoot the problem, I have come across
    the following error:
    10/16 15:12:24 error Operation failed on the data source
    named "Treasury".
    coldfusion.runtime.ClientScopeDBException: Operation failed
    on the data source named "Treasury".
    at
    coldfusion.runtime.JDBCHelper.Store(PersistenceFactory.java:261)
    at
    coldfusion.runtime.ClientScopeServiceImpl.PersistClientVariables(ClientScopeServiceImpl.j ava:282)
    at
    coldfusion.runtime.ClientScopeServiceImpl.PersistClientVariablesForRequest(ClientScopeSer viceImpl.java:264)
    at
    coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:3 2)
    at
    coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:35)
    at
    coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:43)
    at
    coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at coldfusion.CfmServlet.service(CfmServlet.java:105)
    at
    jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
    at
    jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at
    jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:249)
    at
    jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)
    at
    jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:192)
    at
    jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:348)
    at
    jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
    at
    jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:294)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
    That's it - nothing else. I have searched high an low,
    finding similar errors, but they all have an additional error
    message like outOfBounds. This error appears up to 200 times per
    day, some within seconds of each other. (I never really looked at
    the logs, but it has been occurring since I brought up each server,
    test and production). I mentioned the client variable fix above
    because of the references in the error message like
    'ClientScopeServiceImpl.PersistClientVariables'. I am using an
    Access DB to store the client variables, with a purge date of 90
    days. Within the Access DB there are the CDATA and CGLOBAL tables,
    but with only 278 records in each. I inheritated the system in
    version 4.5, and have upgrade to 5 and the to 6.1, so I have never
    really looked at client variables before.
    Any ideas? Could these errors be created every time someone
    logs onto the application? Your time and suggestions are greatly
    appreciated.
    Libby

    Libby, your wits should take you further. Your problem is
    your choice of databases more than a client variable issue. It is
    regularyly stated that ODBC and especially ODBC to a desktop
    database (access, paradox, etc.) is not recommended for real
    applications. More so, only use Access for low traffic,
    departmental applications or not at all. Storing client variables
    in access only compounds the bad choice. Client variables stored in
    a database means there is a db read at the start of every request
    and a write at the end of each request. That alone will over stress
    access.
    And then you have your explicit database queries on top of
    that. With a datasource named "treasury", it seem likely you are
    storing application data there too. So you have a multithreaded
    application server going to a database that can only handle a
    single connection at a time where you are making multiple database
    queries for every page request.
    Win2k3 was originally distributed
    without any desktop ODBC drivers, the msjet, etc. Microsoft
    indicated that an application server was not a place where desktop
    databases should be used. Unfortunately, MS let up and eventually
    put the destop ODBC drivers back in win2k3. But, their thinking is
    correct. Desktop db's cannot keep pace with a high speed appserver,
    including coldfusion and win2k3.
    Path of a JDBC query to MS SQL
    server:
    CFMX (java) - JDBC SQL server driver - over wire as TDS
    request straight to the database server. MSS DBMS engine does all
    work on back end.
    [Path of a ODBC query to MS Access:
    CFMX (java) - JDBC sequellink driver - sequelink server -
    sequelink client - windows ODBC - Access driver -msjet manipulates
    access file.
    I will make the main points in this thread only, since they
    are all around these forums. ODBC is very indirect. File based
    desktop databases are typically not thread safe, multi-user or just
    capable enough for any appserver. Use a real DBMS, in short. Even
    mssql developer, desktop or what ever their new low cost database.
    Say good bye to Access for any real application's backend.

  • Setting expiration of client variables

    We are in need to expire client variables at the same rate as
    session variables. In our case this is 2 hours.
    Unfortunately, our client variables expire randomly well
    before 2 hours are passed.
    What should be the correct setting to achieve this?
    Our configuration:
    - Client variables are stored in their own separate database.
    - The checkbox 'Purge data for clients that remain unvisited
    for 0 days' is checked and days is set to 0.
    - The checkbox 'Disable global client variable updates' is
    not checked.
    - The 'Purge Interval' is set to 2 hours and 0 minutes.
    Thank you,
    Alex Ismail

    Hi,
    I noticed you managed to "persuade" the proxy WS client in setting timeout.
    Can this be done using JCX control too?
    With regards, matevz
    Matevz Mutec, M.Sc.
    Information systems development engineer
    Telekom Slovenije, d.d.
    Information technology department
    Tel.no.: +386-1-2341868
    Cell.tel.no.: +386-41-752266 (MPO 8868)
    www.telekom.si
    <velagale> wrote in message news:[email protected]..
    Anyway,
    I figured it out myself, by looking at other posts and applying some
    reflection API
    HelloWorld_Impl proxy = new HelloWorld_Impl();
    HelloWorldSoap soapProxy = proxy.getHelloWorldSoap();
    // I learnt that this soapProxy is infact an object of HelloWorldSoap_Stub
    class
    HelloWorldSoap_Stub myStub =
    (HelloWorldSoap_Stub)proxy.getHelloWorldSoap();
    BindingInfo bInfo =
    (BindingInfo)myStub._getProperty("weblogic.webservice.bindinginfo");
    bInfo.setTimeout(5); //secs
    myStub._setProperty("weblogic.webservice.rpc.timeoutsecs", "5"); // secs
    // finally you can call the methods of the web service
    soapProxy.Hello();
    Please be aware that, upon time out, you would get an exception : <class =
    java.rmi.RemoteException
    cause = javax.xml.rpc.soap.SOAPFaultException:
    javax.xml.rpc.JAXRPCException:java.net.SocketTimeoutException: Read timed
    out.>

  • Cannot Delete Client Variables

    Summary: I have a logout page that deletes session and client
    variables. When I execute the page, the CF debugging information
    notes that all the session and client vars have been deleted.
    However, when I execute another page in the same application and on
    the same browser, that page's debugging info notes that the client
    var stll exists. How is the server showing that the client var
    doesn't exist one page, but exists on another? (I am using CF MX
    Version: 6,1,0,63958)
    *****Here's the code I use to delete the client and session
    vars
    <!--- Delete session variables --->
    <cfapplication
    name="SteadyApp"
    sessionmanagement="yes"
    sessiontimeout="#createTimeSpan(0,0,0,0)#">
    <!--- Delete client variables --->
    <cfset DelteVar = DeleteClientVariable("userID")>
    *****Here's the code from my application.cfm page:
    <cfapplication
    name = "SteadyApplication"
    clientmanagement = "Yes"
    clientstorage="SteadyDatabase"
    setdomaincookies="Yes"
    sessionmanagement="Yes">
    Thank you in advance.
    /AJ

    I continuely have this same problem, so if someone has any
    insight on whats up with this... please.
    let me ask you this though... where is your setting of your
    variable located? is it in the appplication.cfm page?
    if it is this might be the problem. even though you are
    deleting the var in your delete page, the application page is
    present and will persist the var because ... it knows...

  • Client variables stored in registry getting errors

    I'm moving from CF9 to CF10.  On the new server I've moved things over, and run the suggested lock-down proceedures.  On the CF9 box, I'm using the registry to store client variables.
    On the new server I've set it up to use the registry to store client variables.  In the coldfusion-out file, I'm getting errors like:
    Jan 15, 2013 15:39:03 PM Information [ajp-bio-8012-exec-4] - Unable to set value HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\ColdFusion\CurrentVersion\Clients\4210-c8158ffa199 3bc18-7CF31106-90B1-1C19-1B0C24F3BDD33D8C\hitcount: Windows error number 0 occurred.The handle is invalid. 
    Jan 15, 2013 15:39:03 PM Information [ajp-bio-8012-exec-4] - Unable to set value HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\ColdFusion\CurrentVersion\Clients\4210-c8158ffa199 3bc18-7CF31106-90B1-1C19-1B0C24F3BDD33D8C\cftoken: Windows error number 0 occurred.The handle is invalid. 
    Jan 15, 2013 15:39:03 PM Information [ajp-bio-8012-exec-4] - Unable to set value HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\ColdFusion\CurrentVersion\Clients\4210-c8158ffa199 3bc18-7CF31106-90B1-1C19-1B0C24F3BDD33D8C\cfid: Windows error number 0 occurred.The handle is invalid.
    On the new server, CF logs in with its own user whereas on the old system, CF logged in as admin.  I'm guessing this might be the issue. 
    Anyone having similar issues or can suggest a solution?  I did a search but most people were either turing off client variables or the answer was from 2006. 
    Thanks.

    All that said (and I do agree with Adam and Carl that you should eschew the registry for client vars), the answer to your question is that yes, it had to do with your having changed the user that the CF service runs as. You need to grant permissions on that path in the registry (HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\ColdFusion\CurrentVersion\Clients\) for that user. Find it using regedit, and right-click on that path, and choose “permissions”.
    Hopefully that’s enough to get you going. But again, do give serious thought to switching to cookie or a datasource to hold them.
    (Sadly, while many people will tell you to do that, they don’t give any guidance on how to get any and all legit client var data out of the registry and into a new storage mechanism. That’s because it’s not easy, and it’s way too big to discuss here in this forum post.)
    /charlie

  • Embeded derby as client variable store

    I've spent considerable time trying to configure the built-in
    derby embeded DB as a CF client variable store and have failed
    utterly. It seems to be impossible.
    I had a SQL Server client store which worked just find, but,
    for various reasons that are irrelevant here, I would really prefer
    not to do that and use derby instead.
    I created the database, created the dsn, set the dsn as the
    client store and it all looked okay. But it isn't. The CLOCAL and
    CGLOBAL tables were not created as they should have been (and were
    for SQL Server). So I created them by hand as described in the
    help
    files, but that failed as well. Changing various things yields
    different errors, but there is a consisted 500 Server error. I can
    only guess that the database writes are failing, but there is no
    indication as to why.
    I have looked all over adobe.com and all over the intertubes
    and there is no further information of any kind. In fact, the
    latest instructions for even creating the database date back to
    May
    2007 and have no resemblance to the administrators screens at
    all. (I'm running CF 8,0,1,195765 standard). When I create an
    embedded derby dsn, I get the generic "default"
    Data & Services > Datasources > Other screen.
    There's nothing "derby" about it.
    So, frankly, it seems pretty pointless and useless to me. If
    someone can point me DIRECTLY to relevant information, I'd
    appreciate it. I cannot believe in the year plus this product has
    been out that NO ONE has done this, especially when it's commented
    all
    over the place that this is one of the things you can do, yet
    there's nothing. Even searching for just "derby" on these forums
    yields only three hits, none of which are relevant.

    >> Well it does actually *tell you* it won't create
    them automatically when
    > > you go to set the DSN as the client store. I
    suppose one has to read what
    > > it says on the screen, which I have to say I don't
    bother doing a lot of
    > > the time in CFAdmin because I "know" what the text
    says. This very screen
    > > has caught me out with that before. Just the first
    time, though.
    >
    > Actually, it does not tell you. The SQL Server screen
    presents you with a box
    > that says "create tables" but this one does not.
    It doesn't say - underneath the "Description" text area "Your
    data source
    requires you to manually create the necessary database tables
    to store your
    client variables. See the Online Help for details. "?
    It does for me.
    You have a most curious CF install, and I would be very
    hesitant continuing
    with it given what you say.
    What OS are you running on? Do you still have your install
    logs, and do
    they reveal anything relevant?
    Is this an install that was fresh 8.0 (or 8.0.1), or has it
    been upgraded
    from an earlier release?
    > The ones you expect. And the tables are there and
    created correctly as per
    > <cfdbinfo> which matches the <cfdbinfo>
    created by CF in SQL Server. Things
    > like:
    > CREATE TABLE CDATA (cfid char (64), app char (64), data
    clob,)
    > CREATE TABLE CGLOBAL (cfid char (64), data clob, lvisit
    datetime)
    > CREATE UNIQUE INDEX id1 ON CDATA(cfid, app)
    > CREATE INDEX id2 ON CGLOBAL(cfid)
    > CREATE INDEX id3 ON CGLOBAL(lvisit)
    OK, that sounds about right. The only thing I did different
    was to use
    timestamp rather than datetime. I'm not sure if that's worth
    a try.
    Can you insert / update / delete manually to/from those?
    > > What are the error messages?
    > As I said, the only consistent one is an Apache 500
    Server error
    The inconsistent ones would probably be helpful to know about
    too.
    What goes into the CF logs when these errors are being
    raised? Do the 500
    errors give an stack trace info? I think 500 errors usually
    don't, but
    don't exactly recall.
    > > That sounds wrong. I get " Data & Services >
    Datasources > Apache Derby
    > > Embedded" on all three servers I have at my
    disposal currently (a mix of
    > > CF8 multiserver, CF8 stand-alone), and the rest of
    the screen is
    > > Derby-specific. It sounds to me like your install
    is bung. Are you saying
    > > when you select "Apache Derby Embedded" you just
    get the same screen you
    > > would have had you selected "other"? Odd.
    >
    > Also, as I said, I do not get any Derby anything.
    I'm finding your tone a bit tedious to be honest.
    I asked for clarification because you weren't completely
    clear in your
    post, and I just wanted to make sure you were sure what you
    were seeing
    because it's somewhat unusual to be getting completely the
    wrong screens in
    CFAdmin. In all the CF servers I have had responsibility for,
    I've not
    seen this, so I just wanted to *make sure* I was reading you
    right.
    > "other" jdbc data source creation screen, In fact, I
    even copied the
    > derby-specific URL from the create link and pasted it
    into the browser, and CF
    > Admin redirected it to the generic jdbc. This happens on
    all three CF servers I
    > have access to (all running 8.0.1 standard).
    Weird. How did you create the Derby DBs themselves? It's
    usually one of
    the options on the create DSN screen. Did you create them
    manually or
    using some other client tool?
    > > I think your problem here is your attitude that
    because *you* can't make
    > > something work then automatically nor can anyone
    else. That is seldom
    > > going to be the case, surely (or you lead a very
    charmed life). I always
    > > find that when something doesn't work for me in CF
    it's almost always my
    > > fault.
    >
    > Thank you for your opinion. It's most helpful
    When trying to solve a problem that's a result of something
    you've done, I
    find it easy to take the mindset that *you've* done something
    wrong, not
    [something else] has done something wrong. Once one starts
    looking more
    analytically at one's own actions, sometimes a flag comes up,
    and there's a
    bit of a "slap forehead" moment. However if it's
    predetermined that
    something else is at fault and one is just the victim of
    circumstance, it's
    difficult to progress.
    It's just better to dispense with the hand-wringing and roll
    up the sleeves
    and get on with fixing it.
    > should have somehow psychically determined. If you read
    for comprehension
    > you'll see that I said I can't believe no one had done
    it.
    Have you not found anyone reporting to have used the Derby
    DB? I have to
    say that I'd never used it before y/day, because I've got the
    luxury of
    having Oracle or SQL Server DBs at my disposal. However I do
    know of other
    organisations using Derby for their demo DBs, and have read a
    few things
    about its usage.
    I don't think you should expect to hear people reporting back
    "hey I am
    using Derby to store my client variables", because I don't
    think it's
    really that report-worthy. How many people to you see
    reporting back "I'm
    using my Oracle DB to store client variables"? As "storing
    client
    variables in a DB" is such a mundane thing, people are only
    going to report
    on it if they have had problems with it. Maybe no-one's done
    it (except
    for me, as of y/day). Maybe no-one's had a problem with it. A
    case in
    point: I had no problems setting it up, so I have no further
    need to report
    anything to anyone about it because it's "job done, move on".
    > As I said the first time and again above, and will
    repeat again here: I can't
    > find anywhere where someone said they've actually done
    it.
    I've *actually done it*. I told you this y/day, as soon as
    you asked.
    There you go. Can we move on now please?
    I'm not actually sure you want help, but if you do, follow up
    with those
    error message and anything from the logs that are helpful. I
    think you
    just want to have a moan as to how you've been so put upon,
    and if that's
    the case, I think we're done here. It's up to you as to how
    to proceed.
    Adam

  • Client Variable vs Cookies

    Hello all, first off, I have never used a client variable
    ever in Coldfusion. I am looking for some advice as to the
    pros/cons of using client variables over cookies...
    The only real situation I use a cookie for right now is to
    store their username if they select remember me so that next time
    they come to the site it remembers their username... Is this
    something I should be using a client variable for?
    Any advise/comparison to the uses of the two would be great.
    Thanks!

    I never saw anything ever get inserted into the CDATA and CGLOBAL tables. Is that not the point of these tables? To hold the session data?
    Yes, it is. You seem to have done the settings properly. However, you must enable client variables.
    Here's how you do it. If your application file is Application.cfm, then add the following attributes to the cfapplication tag
    clientManagement="yes"  clientStorage="Name_of_datasource_you_created"
    If your application file is Application.cfc, then define the following properties
    this.clientManagement = "yes";
    this.clientStorage =  "Name_of_datasource_you_created";

  • ColdFusion 8 - Client Variables don't work with PostgreSQL

    RedHat Fedora Linux
    PostgreSQL version 8.2
    ColdFusion version 8 Developer
    Steps to create problem:
    Creating Client Variables in the "ColdFusion Administrator".
    checked "Create Client Variables" pressed "submit"
    Results:
    The "ColdFusion Administrator" errors out.
    Problem:
    "ColdFusion Administrator" calls a the page "postgresql.cfm",
    which creates the tables in the database.
    Until "ColdFusion" executes the SQL "create table CGLOBAL
    (cfid char(64), data text, lvisit datetime)".
    According to PostgreSQL website and documentation, the data
    type "datetime" doesn't exists."
    Valid 'time/date data types' are timestamp,interval,date and
    time.
    Question:
    Is there some way of getting "ColdFusion" to "create a
    'Client Variables' database" in PostgreSQL DBMS,
    using "ColdFusion Administrator?
    What are the SQL statements to "create a 'Client Variables'
    database" by hand?

    Have you viewed the Livedocs section at
    Client
    Variables page? It does explain the process for creating client
    variable tables:
    Use the following sample ColdFusion page as a model for creating
    client variable database tables in your own database. However, keep
    in mind that not all databases support the same column data type
    names. For the proper data type, see your database
    documentation.
    This is where you can substitute the correct data types that
    are appropriate for your flavor of DBMS.
    Phil

  • CF MX7, Client variables and an internal app

    I work for a retail company that has over 500 stores.  Some time ago, I wrote 4 applications that the stores use in CF.  In the time since I developed them, we moved to CFMX7 and now are changing to a new point of sale, on a Windows XP platform with IE 7.0 as the client.
    Nothing can change on the client so any suggestions in that area won't help me.
    The applicaitons the stores use are store specific and I have to pass the store number in the URL.  I store the store number in a Client variable and a Cookie (as backup).  I was lazy back then and in each application, the store number variable is the same name.
    So now I have a problem since we moveed to the new POS (which I do not believe has anything to do with it, but maybe).
    When one store is in one app (call it App A) and another store is in App B, at some point, the store numbers get mixed up and some how when the first store submits, it ends up submitting with the other store number.
    Are my client variables getting crossed up?  I thought that the client variables were instance specific.
    Thoughts?

    I had no problems with MySQL 5.1 on CF8.0.1. However, I found
    there were quite a few corners to turn when changing the datasource
    for the client store. I followed the following steps:
    1) Create a new database (called
    client_data)using the following SQL script:
    CREATE DATABASE client_data;
    USE client_data;
    /*Table structure for table cdata */
    DROP TABLE IF EXISTS cdata;
    CREATE TABLE cdata (
    cfid char(64) NOT NULL,
    app char(64) NOT NULL,
    data text,
    UNIQUE KEY id1 (cfid,app)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    /*Table structure for table cglobal */
    DROP TABLE IF EXISTS cglobal;
    CREATE TABLE cglobal (
    cfid char(64) NOT NULL,
    data text,
    lvisit datetime NOT NULL,
    KEY id2 (cfid),
    KEY id3 (lvisit)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    2) Configure a datasource called
    client_data in the datasources page in the Coldfusion
    Adimistrator. Use the following settings:
    Data Source Name:client_data
    Driver:MySQL (4/5)
    Database:client_data
    Server:127.0.0.1
    Port:3306
    Username:root
    Password:BKBK1432
    3) In the Client Variables page in the Administrator, delete
    any previous datasources used for client storage.
    4) Restart Coldfusion.
    5) In the Client Variables page in the Administrator, add
    client_data as the store for client variables. Make sure its
    radio-button is selected.
    6) If necessary, change the value of the
    clientStorage attribute in Application.cfm or the
    this.clientStorage in Application.cfc to "client_data".

  • Client variable database repository exception handling

    We have recently had 2 incidents where client variable
    database storage appears to have failed in our clustered
    environment. We have 2 servers that share a sybase 12.5.2 client
    variable repository (CDATA/CGLOBAL). The problem seems to be
    occuring when a table that the application uses gets blocked by an
    unrelated application. When this happens, client variable storage
    seems to fail - the 2 servers apparently use whatever client
    variables they have in memory rather than getting the values from
    CDATA.
    There are no exceptions thrown, the application continues to
    function normally except that each server has it's own copy of the
    client variables. When we kill the process that has the table
    locked up, the servers start using CDATA normally again.
    The page that is getting blocked by the external process does
    not update any client variables, but it does read them. The
    inconsistent client variable problem occurs on other pages, not the
    one being blocked.
    I was able to sort of recreate the problem. I found that if I
    renamed CDATA, no error is reported to the user. The database
    exception (table not found) is logged, but not thrown on the page.
    To the user the application appears to function normally. So this
    demonstrates that updates to CDATA which result in database
    exceptions fail silently and are not thrown to the page.
    Has anyone else experienced silent exceptions in CDATA
    updates? Are there any workarounds for this behavior? Our
    application relies on client variables being consistent across
    servers and really need for exceptions to be thrown to the page so
    that the user is aware.
    Additional Info:
    CFMX 7.0.2
    Windows Server 2003 SP1
    database is sybase 12.5.2

    This is one of the "classic" design problems in this kind of architecture. And, unfortunately, the answer is "it depends on how you think you need to handle it." And I'm sure there are plenty of "gurus" that will tell you one way or another is the only way to do it.
    I'll be more honest: I'll give you a couple of personal suggestions, based on experience in this architecture. These are suggestions - you may do with them what you will. I will not say this is the best, most correct, or even remotely relevant to what you're doing.
    If it's simple data validation for "typing" (e.g. String, number, Date, etc.), that is taken care of when you attempt to stuff in the information into the appropriate DTO. If it's more "sophisticated" than that (must be in a certain range, etc.), that particular checking should probably be delegated from your Controller to a helper class. That not only saves the "expense" of transmitting the information back and forth across the wire, it's "faster" to the end user so say "Ooopsie" by redirecting back to the form right then. Basically the same thing if the types are wrong.
    That only leaves the "big" problems in the business layer (EJBs), where you have to deal with concurrency, database failures, etc. Generally these kinds of exceptions are thrown back to to the Controller in one of two forms:
    1) a sublass of RuntimeException, which signals that some Very Bad Things have happened in your container. EJBException is one like that and you can see where it's being thrown from.
    2) a subclass of Exception, also called "application exceptions." They are usually something like a "duplicate record" or a validation-like error (which you mentioned) like a missing field. They're used as a signal to a failure in the logic, not the container. That way you have to decide at what layer of your architecture they should be handled and/or passed on to the next.

Maybe you are looking for