Reference for sample Tuxedo/Q program in COBOL

Hi..
Am using Tuxedo 10g R3.. I need to write a program in cobol with Tuxedo/Q which involves DB2 queries with ATMI calls..
For this first i need to know how to write a simple program with queues concept in cobol.. the sample program provided with tuxedo is written in C language..
I just need sample program which does the string conversion or any other programs which uses the Queues.. It will be helpful for me to write my program..
I have tried a sample program with the procedure given in this link..
http://e-docs.bea.com/tuxedo/tux80/pdf/usingq.pdf
my program didnt work so i guess am missing many things since this concept is new to me.. so i feel if there is some sample code it would be helpful..
Is there any reference book for this?? can anyone send me the link so that i can these programs..
Thanks..

Hi,
I tried the below code for queue concept.. Am able to write into the queue but coulnt retrive from the queue..
Here is my Client code..
IDENTIFICATION DIVISION.
PROGRAM-ID. QUECL.
AUTHOR. TUXEDO.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
* Tuxedo definitions
01 TPQUEDEF-REC.
COPY TPQUEDEF.
01 TPTYPE-REC.
COPY TPTYPE.
01 TPSTATUS-REC.
COPY TPSTATUS.
01 TPSVCDEF-REC.
COPY TPSVCDEF.
01 TPINFDEF-REC.
COPY TPINFDEF.
* Log messages definitions
01 LOGMSG.
05 FILLER PIC X(8) VALUE "QUECL:".
05 LOGMSG-TEXT PIC X(50).
01 LOGMSG-ERR.
05 FILLER PIC X(14) VALUE
"QUECL ERR=>".
05 LOG-ERR-ROUTINE PIC X(10).
05 FILLER PIC X(21) VALUE
" FAILED: TP-STATUS = ".
05 LOG-ERR-TP-STATUS PIC S9(9).
01 LOGMSG-ERR-LEN PIC S9(9) COMP-5.
01 LOGMSG-LEN PIC S9(9) COMP-5.
01 USER-DATA-REC PIC X(75).
01 SEND-STRING PIC X(100) VALUE SPACES.
LINKAGE SECTION.
* Start program with command line args
PROCEDURE DIVISION.
MOVE LOW-VALUES TO TPINFDEF-REC.
MOVE LENGTH OF LOGMSG TO LOGMSG-LEN.
START-CSIMPCL.
MOVE "hello" TO SEND-STRING.
DISPLAY "SEND-STRING:before: " SEND-STRING.
MOVE "Started" TO LOGMSG-TEXT.
PERFORM DO-USERLOG.
PERFORM DO-TPINIT.
PERFORM DO-TPENQUEUE.
PERFORM DO-TPDEQUEUE.
DISPLAY "SEND-STRING:after: " SEND-STRING.
PERFORM DO-TPTERM.
PERFORM EXIT-PROGRAM.
* Now register the client with the system.
DO-TPINIT.
MOVE SPACES TO USRNAME.
MOVE SPACES TO CLTNAME.
MOVE SPACES TO PASSWD.
MOVE SPACES TO GRPNAME.
MOVE ZERO TO DATALEN.
SET TPU-DIP TO TRUE.
CALL "TPINITIALIZE" USING TPINFDEF-REC
USER-DATA-REC
TPSTATUS-REC.
IF NOT TPOK
MOVE "TPINITIALIZE Failed" TO LOGMSG-TEXT
PERFORM DO-USERLOG
PERFORM EXIT-PROGRAM
END-IF.
* Issue a TPENQUEUE
DO-TPENQUEUE.
MOVE LOW-VALUES TO TPQUEDEF-REC.
MOVE "TMQUEUE" TO QSPACE-NAME IN TPQUEDEF-REC.
MOVE "TOUPPER" TO QNAME IN TPQUEDEF-REC.
MOVE "RPLYQ" TO REPLYQUEUE IN TPQUEDEF-REC.
SET TPTRAN IN TPQUEDEF-REC TO TRUE.
SET TPBLOCK IN TPQUEDEF-REC TO TRUE.
SET TPTIME IN TPQUEDEF-REC TO TRUE.
SET TPSIGRSTRT IN TPQUEDEF-REC TO TRUE.
SET TPQREPLYQ IN TPQUEDEF-REC TO TRUE.
SET TPQQOSDELIVERYNONPERSISTENT IN TPQUEDEF-REC TO TRUE.
SET TPQMSGID IN TPQUEDEF-REC TO TRUE.
MOVE LOW-VALUES TO TPTYPE-REC.
MOVE "STRING" TO REC-TYPE IN TPTYPE-REC.
MOVE LENGTH OF SEND-STRING TO LEN IN TPTYPE-REC.
CALL "TPENQUEUE" USING
TPQUEDEF-REC
TPTYPE-REC
SEND-STRING
TPSTATUS-REC.
IF NOT TPOK
MOVE "TPENQUEUE failed" TO LOGMSG-TEXT
PERFORM DO-USERLOG
PERFORM EXIT-PROGRAM.
DISPLAY "ENQUEUE OVER".
* Issue a TPDEQUEUE
DO-TPDEQUEUE.
MOVE LOW-VALUES TO TPQUEDEF-REC.
MOVE "TMQUEUE" TO QSPACE-NAME IN TPQUEDEF-REC.
MOVE "RPLYQ" TO QNAME IN TPQUEDEF-REC.
SET TPTRAN IN TPQUEDEF-REC TO TRUE.
SET TPBLOCK IN TPQUEDEF-REC TO TRUE.
SET TPTIME IN TPQUEDEF-REC TO TRUE.
SET TPSIGRSTRT IN TPQUEDEF-REC TO TRUE.
* SET TPQWAIT IN TPQUEDEF-REC TO TRUE.
MOVE LOW-VALUES TO TPTYPE-REC.
MOVE "STRING" TO REC-TYPE IN TPTYPE-REC.
MOVE LENGTH OF SEND-STRING TO LEN IN TPTYPE-REC.
CALL "TPDEQUEUE" USING
TPQUEDEF-REC
TPTYPE-REC
SEND-STRING
TPSTATUS-REC.
IF NOT TPOK
MOVE "TPDEQUEUE failed" TO LOGMSG-TEXT
PERFORM DO-USERLOG
MOVE "TPDEQUEUE" TO LOG-ERR-ROUTINE
MOVE TP-STATUS TO LOG-ERR-TP-STATUS
PERFORM DO-USERLOG-ERR
PERFORM EXIT-PROGRAM.
DISPLAY "DEQUEUE OVER".
* Leave TUXEDO
DO-TPTERM.
CALL "TPTERM" USING TPSTATUS-REC.
IF NOT TPOK
MOVE "TPTERM Failed" TO LOGMSG-TEXT
PERFORM DO-USERLOG
END-IF.
* Log messages to the userlog
DO-USERLOG.
CALL "USERLOG" USING LOGMSG
LOGMSG-LEN
TPSTATUS-REC.
DO-USERLOG-ERR.
CALL "USERLOG" USING LOGMSG-ERR
LOGMSG-ERR-LEN
TPSTATUS-REC.
*Leave Application
EXIT-PROGRAM.
MOVE "Ended" TO LOGMSG-TEXT.
PERFORM DO-USERLOG.
STOP RUN.
and this is my TOUPPER service program..
IDENTIFICATION DIVISION.
PROGRAM-ID. TOUPPER.
AUTHOR. TUXEDO.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
* Tuxedo definitions
01 TPQUEDEF-REC.
COPY TPQUEDEF.
01 TPSVCRET-REC.
COPY TPSVCRET.
01 TPTYPE-REC.
COPY TPTYPE.
01 TPSTATUS-REC.
COPY TPSTATUS.
01 TPSVCDEF-REC.
COPY TPSVCDEF.
* Log message definitions
01 LOGMSG.
05 FILLER PIC X(10) VALUE
"QUESR :".
05 LOGMSG-TEXT PIC X(50).
01 LOGMSG-LEN PIC S9(9) COMP-5.
* User defined data records
01 SEND-STRING PIC X(100).
LINKAGE SECTION.
PROCEDURE DIVISION.
START-STRING.
MOVE LENGTH OF LOGMSG TO LOGMSG-LEN.
MOVE "Started" TO LOGMSG-TEXT.
PERFORM DO-USERLOG.
* Get the data that was sent by the client
MOVE LENGTH OF SEND-STRING TO LEN.
CALL "TPSVCSTART" USING TPSVCDEF-REC
TPTYPE-REC
SEND-STRING
TPSTATUS-REC.
IF NOT TPOK
MOVE "TPSVCSTART Failed" TO LOGMSG-TEXT
PERFORM DO-USERLOG
PERFORM EXIT-PROGRAM
END-IF.
IF TPTRUNCATE
MOVE "Data was truncated" TO LOGMSG-TEXT
PERFORM DO-USERLOG
PERFORM EXIT-PROGRAM
END-IF.
INSPECT SEND-STRING CONVERTING
"abcdefghijklmnopqrstuvwxyz" TO
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".
MOVE "Success" TO LOGMSG-TEXT.
PERFORM DO-USERLOG.
SET TPSUCCESS TO TRUE.
COPY TPRETURN REPLACING
DATA-REC BY SEND-STRING.
* Write out a log err messages
DO-USERLOG.
CALL "USERLOG" USING LOGMSG
LOGMSG-LEN
TPSTATUS-REC.
* EXIT PROGRAM
EXIT-PROGRAM.
MOVE "Failed" TO LOGMSG-TEXT.
PERFORM DO-USERLOG.
SET TPFAIL TO TRUE.
COPY TPRETURN REPLACING
DATA-REC BY SEND-STRING.
In ULOG am getting like this,
040915.ibmsceai!?proc.303126.1.-2: QUECL: Started
040915.ibmsceai!?proc.303126.1.0: QUECL: TPDEQUEUE failed
040915.ibmsceai!?proc.303126.1.0:
040915.ibmsceai!?proc.303126.1.0: QUECL: Ended
In the UBBCONFIG file, i have declared like this..
*GROUPS
TMQGRP LMID="cicsapp" GRPNO=4 TMSNAME=TMS_QM TMSCOUNT=2 OPENINFO="TUXEDO/QM:/home/e160195/cfg/QUE:TMQUEUE"
*SERVERS
TMQUEUE SRVGRP="TMQGRP" SRVID=4 RESTART=Y GRACE=0 MAXGEN=10 CONV=N CLOPT="-s TMQUEUE:TMQUEUE"
TMQFORWARD SRVGRP="TMQGRP" SRVID=5 RESTART=Y GRACE=0 MAXGEN=10 CONV=N CLOPT="-- -i 2 -q TOUPPER -n"
can u please have a look into this and tell me why dequeue is not working and where am going wrong??
Thanks..

Similar Messages

  • Is "Introduction to Data Acquistion" by R. King a good reference for learning data acqusition programming?

    Is "Introduction to Data Acquistion" by R. King a good reference for learning data acqusition programming? Or can someone recommend a better text.
    Solved!
    Go to Solution.

    Perfect, just what I was looking for.
    Just curious is there a concise index for tutorials such as the one your pointed me toward?
    Thanks!

  • Reference for writing COBOL prog with DB2 with ATMI calls for Oracle Tuxedo

    Hi..
    Am using IBM COBOL for AIX 2.0.0 on Oracle Tuxedo10g R3..
    And for database IBM DB2 Version 8.2..
    I have to write a program in Cobol with queries and with ATMI calls for Tuxedo..
    I need some reference manuals for this or some sample program..
    I also need the connectivity from cobol-DB2 to Tuxedo..
    Can anyone send me link for the same?
    The tutorial CSIMPAPP and STOCKAPP was really helpful..
    Am searching for the similar kind..
    Thanks in advance..
    Edited by: user8103349 on Mar 19, 2009 8:43 PM

    Hi,
    Hopefully someone has some DB2 COBOL code to share. But in any case, using Tuxedo with COBOL and DB2 should be very similar to simply writing normal DB2 COBOL programs. The major difference is that Tuxedo will take care of making the connection to the database and should normally be allowed to perform all transaction management.
    From a configuration standpoint you'll need to add the appropriate line in the Tuxedo RM file that lists how Tuxedo needs to link DB2 XA libraries into the application. The connection information is provided in the OPENINFO string passed along to the TMS that you need to build for DB2 with the buildtms command, and finally you'll need to build your servers with the -r switch to tell Tuxedo which XA libraries need to be linked into the application.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Java programming language uses call by reference for objects?

    Is Java programming language uses call by reference for objects?

    Yes. You make calls to an object via itsreference.
    No.Yes, you're referring to passing a reference into a
    method in which case the value of the
    reference is passed.I believe the OP is using the term "call by reference" to mean "pass by reference." The two are interchangable, AFAIK. So, while "making calls to an object via its reference" is correct, I don't believe it's germane to the question.

  • Open VI reference for VITs and VIs

    Hi
    I have a VIT and I get the reference using the Open VI reference. When I change (rename) this back to a VI, and get the reference for it, its much faster. Does the open VI reference takes longer for VITs than VIs in obtaining a reference?
    Another question  is the same VIT, takes lesser time to get the reference using the Open VI reference in LabVIEW 8.5.1. It takes longer in LV8.6. Why is this happening? 
    Thanks
    Vaa San.

    The two main differences between a VI and a VIT are that   VITs are never run, but are templates that generate a VI instance immediately that has all the properties, attributes and limitations of a VI.  A VI on the other hand has only one instance (unless you make it reentrant)
    ·         A VI generated by a VIT is debuggable just like a VI in that you can trace the execution along the wires. In general, a VIT creates a copy of the VI in memory when you open a reference to it. Creating that copy takes time, which affects performance when doing recursion. That copy is then a standard VI in every sense, except it is not a file. Also, if you don't close these references, they will take up space in your RAM. Reentrant VIs can currently only do real recursion in 8.5 and if they are part of a class. If you open a VIT, you don't open the actual file, but a clone. This way you can open it multiple times. Each time you open it, you get a clone. This is especially useful when you open the VIT with VI Server. VIT's are useful to make an interface window once, and use it multiple times in your program. If the code should run multiple times, but doesn't have a user interface, use reentrant VI’s instead. As far as having the project open, a VI will reload all instances related to the project therefore causing the Vi to load slower. Best Regards,
    Juan Galindo
    Applications Engineer
    National Instruments

  • Finally! T-SQL Reference for SQL 2014 available for download!

    With a mere delay of four month since the release, it is now possible to download the T-SQL Reference for SQL 2014 for your local copy of Books Online. Due to some reorganisations of the reference material on MSDN, the language reference was misisng from
    the initial download.
    To get the reference, you need to use Manage Help Settings, which you find the SQL 2014 program group. Select the option "Install content from online". Once all information has been loaded, scroll down to the SQL Server 2014 group and you will
    SQL Server Language Reference with an Add option, which you should select.
    Now, SQL 2014 uses Help Viewer 1.0, which is very poor, and versions 2.0 and 2.1 which ships with VS 2012/2013 is much more pleasant to use. Thanks to SQL Server MVP Simon Sabin, you can get the SQL 2014 into Help Viewer 2.x in this way. Go to
    https://helpviewerredirector.codeplex.com/
    save the file to a directory. Open a command prompt in that directory and run "HelpViewerRedirector download". Then in Help View, go to manage settings, and select install content from disk. Browse to the folder and select the files you want to see
    in Help Viewer 2.1.
    Erland Sommarskog, SQL Server MVP, [email protected]

    To get the reference, you need to use Manage Help Settings, which you find the SQL 2014 program group. Select the option "Install content from online". Once all information has been loaded, scroll down to the SQL Server 2014 group and you will
    SQL Server Language Reference with an Add option, which you should select.
    If you need more detailed instructions on this part, see the comment from Microsoft added today (2014-08-01) to
    http://connect.microsoft.com/SQLServer/feedback/details/859047/t-sql-reference-and-xquery-reference-missing-from-downloadable-version-of-bol-2014
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Looking for sample code using "first_tab" and "next_tab"

    Looking for sample code using "first_tab" and "next_tab". How is it used with ItemID within a dialog box? I've read the reference books - don't understand it.

    Hi Ray,
    There are several ways to do this, and in the example I created, I actually did not end up using shift registers. I've attached some example code that basically multiplies the period by the duty cycle percentage to achieve the number of milliseconds to be high and low.
    You would just need to insert your DIO code in each frame of the sequence structure.
    Hope that helps. Kind regards,
    -Sam F, DAQ Marketing Manager
    Learn about measuring temperature
    Learn how to take voltage measurements
    Learn how to measure current
    Attachments:
    70_PWM_Example.vi ‏23 KB

  • Where to find a good reference book abt Java Palm Programming in Singapore?

    Can anyone of you introduce a good reference book about Java Palm Programming...Thanks...and pls leave down the title of the book and the location of the book shop.

    As far as I know, u could find books about java palm programming in various libraries. Look for more information @ elibraryhub.com

  • Request for Sample SAP Archive Project Plan

    Dear SAP Practitioner
    My firm is in the mist of planning for SAP Data archiving project. We are looking for sample SAP Data Archiving Project plan and other related documentations. We sincerely hope that you can share for the knowledge of our firm and the rest of the community.
    Regards
    Leonard
    Message was edited by: Leonard Tan

    Hi Kenny,
    Whenever you create a custom (Z) idoc type and want to trigger idocs for it you would need to use the MASTER_IDOC_DISTRIBUTE function module for the same.
    Hence to get some sample programs just do a <i>where used</i> on this function module.
    Hope this helps. Also please refer to the link below:
    <a href="http://">help.sap.com/saphelp_erp2004/helpdata/en/78/21783151ce11d189570000e829fbbd/frameset.htm</a>
    to understand more about not only creating the outbound program using this function module but also about the related SPRO and other configuration.
    Regards,
    Aditya

  • Oracle Fusion Middleware Java API Reference for Oracle ADF Mobile

    Where can I find "Oracle Fusion Middleware Java API Reference for Oracle ADF Mobile"?
    Thanks a lot for your time.

    Hi, this is referring to the JavaDocs for Java methods/classes supported by ADF Mobile. You can typically right (or ctrl) click on any ADF Mobile specific Java method and select "JavaDoc". You can open up a sample app that contains any Java class - for example the HR sample app, and find any method with name "adfmf*". You should be able to see the Java doc for the ADF Mobile related methods/classes.
    Thanks,
    Joe Huang

  • Sharing reference for IUserPhotoService

    Hi,
    I am looking for the correct sharing reference for IUserPhotoService?
    PORTAL:sap.com/?
    IUserPhotoService service = (IUserPhotoService) WDPortalUtils.getServiceReference(IUserPhotoService.KEY);
    Regards,
    Ladislav

    Hi,
    when i searched in  www.SAPJARFINDER.com i found this information:
    IUserPhotoService (class/interface/exception) | List classes of namespace | No javadoc available | No Code Samples available 
    JAR: kmc.people.shared.photo_api.jar | Explore JAR
    Engine path: j2ee\cluster\server0\apps\sap.com\irj\servlet_jsp\irj\root\WEB-INF\portal\portalapps\com.sap.netweaver.kmc.people\lib\kmc.people.shared.photo_api.jar
    Engine version: NW2004s_SPS13
    Namespace: com.sap.netweaver.kmc.people.photo.service.IUserPhotoService
    i guess instead of using shared refrences you have to use library references because jar is not situated under sap.com folder .and try to put <kmc.people.shared.photo_api> value.
    if it does not work then check the library name in visual admin.
    Correction:
    try to put PORTAL:sap.com/com.sap.netweaver.kmc.people value under shared reference ,if this does not work then try the above.
    Also make sure the jar exist on server and service is active/running.
    Siddharth
    Edited by: Siddharth Jain on Jul 16, 2009 1:22 PM

  • Error while updating a custom Windows Azure Diagnostics configuration xml from powershell. "Invalid update to extension reference for role"

    I am attempting to upload a manually edited WADConfig xml to my VM. The WAD service is functioning correctly, I needed to add some custom WinEventLogs. The prescribed steps result in an error.
    What am I overlooking?
    I am following these instructions:
    Step 5: Remotely install Diagnostics on your Azure Virtual Machine
    azure.microsoft.com/en-in/documentation/articles/cloud-services-dotnet-diagnostics/#virtual-machine
    $storage_name = "wadexamplevm"
    $key = "<StorageAccountKey>"
    $config_path="c:\users\<user>\documents\visual studio 2013\Projects\WadExampleVM\WadExampleVM\WadExample.xml"
    $service_name="wadexamplevm"
    $vm_name="WadExample"
    $storageContext = New-AzureStorageContext
    -StorageAccountName $storage_name -StorageAccountKey $key
    $VM1 = Get-AzureVM
    -ServiceName $service_name -Name $vm_name
    $VM2 = Set-AzureVMDiagnosticsExtension
    -DiagnosticsConfigurationPath $config_path
    -Version "1.*"
    -VM $VM1 -StorageContext $storageContext
    $VM3 = Update-AzureVM
    -ServiceName $service_name -Name $vm_name
    -VM $VM2.VM
    Unfortunately, I am receiving this error:
    Update-AzureVM : BadRequest: Invalid update to extension reference for role: XXXXXX and reference: IaaSDiagnostics.
    What's missing from the above script?

    Hi,
    Since Azure SDK 2.5 uses the extension model the diagnostics extension, the configuration and the connection string to the diagnostic storage are no longer part of the deployment package and cscfg. All the diagnostics configuration is contained within the
    wadcfgx. The advantage with this approach is that diagnostics agent and settings are decoupled from the project and can be dynamically enabled and updated even after your application is deployed. 
    Due to this change some existing workflows need to be rethought – instead of configuring the diagnostics as part of the application that gets deployed to each environment you can first deploy the application to the environment and then apply the diagnostics
    configuration for it.  When you publish the application from Visual Studio this process is done automatically for you. However if you were deploying your application outside of VS using PowerShell then you have to install the extension separately through
    PowerShell.
    There PowerShell cmdlets for managing the diagnostics extensions on a Cloud Service are -
    Set-AzureServiceDiagnosticsExtension
    Get-AzureServiceDiagnosticsExtension
    Remove-AzureServiceDiagnosticsExtension
    You can use the Set-AzureServiceDiagnosticsExtension method to enable diagnostics extension on a cloud service. One of the parameters on this cmdlet is the XML configuration file. This file is slightly different from the diagnostics.wadcfgx file. You can
    create this file from scratch by either following the article that you are referring to or  you can modify the wadcfgx file and pass in the modified file as a parameter to the powershell cmdlet.
    To modify the wadcfgx file –
    Make a copy the .wadcfgx.
    Remove the following elements from the Copy:
    <DiagnosticsConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
       <PrivateConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
         <StorageAccount name=" " endpoint="https://core.windows.net/" />
       </PrivateConfig>
       <IsEnabled>false</IsEnabled>
    </DiagnosticsConfiguration>
    Make sure the top of the file still has xml version and encoding –
       <?xml version="1.0" encoding="utf-8"?>
    Effectively you are stripping down the Wadcfgx to only contain the <PublicConfig> section and the <?xml> header. You can then call the PowerShell cmdlet along with the appropriate parameters for the staging slots and roles:
    $storage_name = ‘
    <storagename>’
    $key= ‘<key>’
    $service_name = '<servicename>'
    $public_config = '<thepublicconfigfrom_diagnostics.wadcfgx>'
    $storageContext = New-AzureStorageContext –StorageAccountName $storage_name –StorageAccountKey $key
    Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext -DiagnosticsConfigurationPath $public_config –ServiceName $service_name -Slot ‘Staging’ -Role ‘WebRole1’
    Hope this helps !
    Regards,
    Sowmya

  • Upgrade or replace mid-2009 MBP for 4 year doc program

    My question:
    I'm new to this forum - thanks in advance for your help!
    I love my 5 year old MBP, and I loved the one I had for 5 years before it. I assumed I would buy a new one for this doctoral program that starts in 10 days, which I expect will take 3-4 years to complete. I am flummoxed by what Apple has done with the MBP line (SSD drives with tiny storage capabilities, retina displays I worry will prompt massive storage needs as apps upgrade to take advantage of them, and most offensively the soldering of HD and RAM to the motherboard), and really questioning whether any of the machines they are now selling will be useful to me during my 4 years at school. I am leaning toward buying the maxed out version of the last non-retina model while I still can.
    Should I upgrade my existing machine (hard drive, OS, what else?) or buy that last MBP model that isn't soldered shut before they discontinue it (and maybe upgrade it anyways)? Will the new machine be significantly better, or even more upgradeable, than my current one?
    Concerns that make me hesitate to buy a new machine:
    Hard drive size and upgradability: This is by far the biggest issue. My current machine's hard drive is overloaded and I think that's the biggest problem for performance right now. I refuse to pay through the nose for a way-too-small (smaller?!), non-upgradable, hard drive, no matter how fast it loads entertainment apps. This is my only computer and I will not carry around a separate storage drive. The retina machines are not an option for me for this reason (I'm also anxious about the upcoming storage demands for apps with retina capabilities). I made peace with the idea of having a separate external optical disc drive, but that's pretty awkward when I want to watch a movie in bed or on a plane!
    What has the MBP lost since 2009?: I think I read something about the current MBP model not having speakers - I love my speakers! They aren't necessary to do my schoolwork, but I love them just the same. What else has disappeared on the MBP since 2009? I'm paranoid that I may have missed other changes since it's been so long since I paid attention to the product line.
    Value for the money: If I'm going to spend $1,300+ on a machine I expect significantly better performance. I can't tell if the newer machine with it's faster (though not as fast as the retina machines) processor will be much faster, or much better in general. Buying it basically saves me the trouble of figuring out all of the details for how to upgrade my current machine, which is worth a lot to me. But will the new machine really be better? How so? By how much? Will I be able to upgrade it in the future beyond what Apple offers now (1TB hard drive/512 GB SSD), OSx Mavericks, 8GB RAM, Intel Core i7)? If it is really going to be better or offer more longevity, I'll snatch one up in a heartbeat, because I expect it will be a couple years before those SSDs are big enough to satisfy me. And I'll let Apple max it out for me for $300 because it will save me the trouble of doing so while I'm preparing for school.
    Retina second thoughts: Am I crazy for not wanting the retina machine? Maybe I should wait for the SSD to come down in price so one of those machines are more practical (though still not upgradable?!). Or even get one with 512 GB SSD and plan to upgrade in 2 years?
    Refurbished option: Should I look for a refurbished non-retina 15" MBP? I like the 13" screen, but think there were bigger upgrade options on the last 15" one.
    About my current machine:
    I bought my baby new in 2009 for my master's program and he has been incredibly good to me. My only regret now is that I didn't upgrade to the fastest processor at that time - if I had I wouldn't be posting this because I'd just be upgrading. He started slowing down around 2011 so I upgraded the RAM, OS, and I think even the Hard Drive (80 to 160GB?), and at that time I got a new battery and power cord due to a recall. 10 months ago I took him in because he had become painfully slow and the Genius re-installed my OS, but I have noticed a bit of that slow-down returning lately. Google Chrome, Google Apps, MS Office, and iTunes are by far my most used apps, but I do like to open a million tabs in Chrome at once while doing research. I value his speakers because I love music but I do have speakers at home so maybe speakers aren't necessary? He has been tossed around quite a bit - I bought him a neoprene sleeve back in the day but never actually used it and he's definitely taken some nasty spills without any protection.
    Complaints about my current machine:
    Hard drive storage: My biggest issue is that I had a huge surge in data storage (video and photo for a special project) over the past year and didn't take the time to upgrade his hard drive to make space, so now I have a mess of data in a borrowed iPad and multiple external drives. I want to dump all of that onto the same machine, and it easily fits onto a 1TB external drive, but I do not want to keep it there indefinitely. I like having all of my storage on one machine and I am not ready to buy into the cloud beyond Google Apps. Can I upgrade my hard drive to 1TB or even 500MB? How much does that cost, and what else in my machine will be affected by this change? Should I be looking at SSDs? What are the implications for going that route? Where would it go physically and what would I be giving up?
    Speed: He is a little bit laggy sometimes, especially when I open a million tabs on Chrome when I'm researching. I don't switch back and forth between a ton of different programs so startup speed doesn't bother me a ton, but he is a little slow there too.
    Battery life: It isn't awesome. It's sufficient but waning for sure.
    I spilled water on him: This just happened recently and right afterward I noticed that the track pad is a bit buggy now. It is just a little off of what I expect it to be and sometimes refuses to let me navigate. I haven't tried my wireless mouse since that happened but I imagine that will work fine, and I'm hoping it will go back to normal (open to suggestions to fix that for sure!) soon.
    Google Chrome crashes: This has been recent. I've had 20+ tabs open and seen crashes somewhat often. I didn't have this problem before.
    He runs hot: I think this is worse since the 2011 upgrades, but honestly doesn't bother me as long as he's safe to use.
    He runs loud sometimes: I can hear the fans pick up and kick in sometimes when he's working hard, but it doesn't bother me too much.
    Glossy screen is obnoxious: I never bought an anti-glare screen cover to deal with this as I had originally planned. And no, I still don't want a retina MBP.
    Possible physical damage from rough handling: I have been rough with him over the years without a case and I worry that he is on his way to some type of physical damage that hasn't shown up yet.
    My current machine:
    13" MacBook Pro Mid-2009 Model
    Processor 2.26 GHz Intel Core 2 Duo
    Memory  8 GB 1067 MHz DDR3
      2X Size: 4 GB
      Type: DDR3
      Speed: 1067 MHz
      Status: OK
    Graphics  NVIDIA GeForce 9400M 256 MB
    Serial Number  WQ9240Y466D
    Software  OS X 10.8.5 (12F45)
    NVidia MCP79 AHCI - Hitachi HTS545016B9SA02:
      Capacity: 160.04 GB (160,041,885,696 bytes)
      Model: Hitachi HTS545016B9SA02    
      Full to the brim and overflowing      
    Running OSX 10.8.5
    I am considering purchasing this machine:
    MacBook Pro, 13-inch Item Price: $1,319 (This is the education pricing for this model, plus I would buy seriously discounted AppleCare and MS Office)
    Available to ship: 1-3 business days
    Hardware
    2.9GHz Dual-core Intel Core i7, Turbo Boost up to 3.6GHz
    8GB 1600MHz DDR3 SDRAM — 2x4GB
    1TB Serial ATA Drive @ 5400 rpm
    SuperDrive 8x (DVD±R DL/DVD±RW/CD-RW)
    Backlit Keyboard (English) & User's Guide
    Accessory Kit

    Whygirl,
    it reads as though an internal disk upgrade (and possibly a battery replacement) would suffice for you, and those two together would be far less expensive than a new MacBook Pro. Yes, you could install either a HDD or a SSD in place of its current internal HDD. You could look at the Hitachi Travelstar 7K1000 as an example of a suitable 1 TB HDD; SSDs are more expensive per unit of storage than a HDD, but might be worth the extra cost if your apps are disk-bound. (I put a Samsung 840 PRO into my 13-inch Mid 2010 model, and it’s been working well.) Note that Chrome might be responsible for the extra heat (and the extra heat is responsible for the increased volume from the fans kicking in); Chrome isn’t optimized for use on 64-bit versions of OS X, like 10.8.5.

  • Get Specific References for all Controls

    Using slightly modified code from here, I am generating an array of all control references on my main front panel which is then passed through to a number of subVIs. Although this functionality does work, it would be preferable to get specific references to the controls (for example, Boolean RefNum instead of Control RefNum). 
    Getting these specific references seems possible using To More Specific Class and Class Specifier constants. However, data storage becomes an issue because I can no longer use arrays (as they are a different data type). I am not sure if there is another way to pass this data on. I have experimented casting the RefNums to Variants, but to get the data from the variant, I have to know what RefNum type I am expecting which sort of defeats the purpose of doing this in the first place.
    A secondary problem is keeping the names of the references. The Control RefNums do not have names associated with them nor do I know how to assign names to them. I've again tried using variants and using the OpenG Set Data Name function, but this crashes LabVIEW without any indication of why.
    I've attached a version of my code that tries assign names using OpenG Set Data Name and build a variant array. To run it, simple add the VI as a subVI to a VI that has some boolean controls on the Front Panel. Apologies for the rough state of the code - I'm still in the process of figuring out how to make it work so things are a bit messy.
    Solved!
    Go to Solution.
    Attachments:
    Get Specific Control Refs.vi ‏28 KB

    I don't know if you'll get much better.  There is really no way I know of to have some fully flexible way of building named clusters of references based on any given front panel set you feed to it.
    I tend to do things the manual way (as there are also a bunch of references to front panel elements I wouldn't need).  I would do all the bundling work in a subVI.
    I'm attaching a zip file that contains the key VI's (unless I missed something) on the first project where I really tried to abstract out the reference building.  The files are LV9.
    On my main VI, I have the subVI called Build UI References early in the VI during an initialization phase.  I pass the reference to the main VI into that subVI that builds all the references.  I worked it as a master cluster that contains elements that are arrays of references of related controls.  It uses another subVI called Get References and Label Names that I created to help find controls.  I still need to use More Specific Class to get the property references, but I don that only once at the beginning.  I then pass that cluster wire out and to anywhere in my VI that would need access to the references for front panel elements.
    I use arrays of strings to supply the names I need to build and bundle the references.  This lets me ignore controls I don't care about.  The disadvantages to my system is that if I change the name of any control, I need to update the name within this subVI.  And if I want to add any controls, not only do I need to add the label names for the searching functions, I also need to update my typedef cluster (and you definitely want this to be a typedef) to add a spot to store the new reference.
    I hope this gives you some ideas.  It worked for me and I will likely use the scheme on another project (or even rewrite past projects using this scheme.)  If there are any ideas for improvements, I'd be happy to hear them.
    Attachments:
    Build UI refs.zip ‏83 KB

  • Getting Menu Reference for a VI other than the current one

    Is there any way to get a Menu reference for a VI that isn't the current VI? There's Current VI's Menubar, but that only works on the current VI. I'd like something that does the same thing, but accepts a VI reference to a higher-level VI. I would expect to find a Property Node entry for it, but there doesn't seem to be one. This is for 8.2.

    eaolson wrote:
    A functional global is what I wound up using. It just seems odd to me that there's no other way to get access to that reference.
    It also seems counter-intuitive to me that a Shortcut Menu reference is only valid inside that particular frame of the Event Structure that caught it. If you're using a producer-consumer architecture, you can not send that refnum off to the consumer loop for handling; it can only used within that frame of the Event Structure.
    I am not sure what you mean. The refnum seems to be accessible from everywhere .
    As i wrote above:
    You can store the Menu Reference to a global variable for example, and you can read it, in any vi you want, just like all variables.
    Note: Do not try to use a property note. Use the menu functions

Maybe you are looking for

  • Last line item gets changed to first line item for cs01

    HI experts,            I have writen a BDC for Tcode cs01. I am facing a problem in that.If sucppose there are 4 line items, the first three line itmes are getting uploaded correctly but the kast line item gets changed to first line item. below is pa

  • What is the maximum number of levels in FCC either at sender side

    Hi Experts, Can we use more than three levels of hierarchy at sender or receiver side if we are using file content conversion? When i tried with 4 levels, i was not able to achieve it. Can anybody illustrate an example if we can achieve it? Thanks &

  • Synchronizing session-scope objects?

              Hi,           I have this problem, using Weblogic 5.1 SP8:           In a JSP-file I use a java-object with the useBean-directive and           session-scope.           The problem occur when a user (for some strange reason) decides        

  • Batch gets skipped or duplicate batch number appears

    Hi all, What should I have to do if Batch gets skipped or duplicate batch number appears while releasing Process Order?

  • Trouble viewing Calendar/Numbers in iCloud on PC

    Is anyone out there having trouble viewing all the apps on iCloud on your PC?  I have Windows 8.1 installed but it was all working with it before.